Zend_Form이 입력을 검증하는 방법에 대해 궁금합니다. 유효성을 검사 할 입력 필드를 어떻게 알 수 있습니까? PHP 전역 변수 ($ _ POST, $ _GET)를 살펴 보았고 유효성을 확인하기 위해 식별자로 설정된 것이 아무것도 없었습니다 (예 :). 아무도 나 에게이 물건에 대한 가이드를 제안 할 수 있습니까?젠드 폼 유효성 검사
답변
Zend_Form quickstart에서 Zend의 양식 처리 방법에 대한 매우 훌륭한 예입니다. 텍스트 입력을 검증
는다음과 같습니다
$username = new Zend_Form_Element_Text('username');
// Passing a Zend_Validate_* object:
$username->addValidator(new Zend_Validate_Alnum());
// Passing a validator name:
$username->addValidator('alnum');
사용 방법을 알고 있습니다. Zend가이 작업을 수행하는 방법을 이해할 수 없습니다. 양식을 제출할 때 유효성을 검사 할 입력 필드를 어떻게 알 수 있습니까? –
@aykut 링크 된 자습서를주의 깊게 읽으십시오. 양식이 유효한지 확인하는 * 섹션이 있습니다. – fabrik
글쎄, 찾을 수있는 가장 좋은 옵션은 code of Zend_Form
보는 것입니다 :
/**
* Validate the form
*
* @param array $data
* @return boolean
*/
public function isValid($data)
{
if (!is_array($data)) {
require_once 'Zend/Form/Exception.php';
throw new Zend_Form_Exception(__METHOD__ . ' expects an array');
}
$translator = $this->getTranslator();
$valid = true;
$eBelongTo = null;
if ($this->isArray()) {
$eBelongTo = $this->getElementsBelongTo();
$data = $this->_dissolveArrayValue($data, $eBelongTo);
}
$context = $data;
foreach ($this->getElements() as $key => $element) {
if (null !== $translator && $this->hasTranslator()
&& !$element->hasTranslator()) {
$element->setTranslator($translator);
}
$check = $data;
if (($belongsTo = $element->getBelongsTo()) !== $eBelongTo) {
$check = $this->_dissolveArrayValue($data, $belongsTo);
}
if (!isset($check[$key])) {
$valid = $element->isValid(null, $context) && $valid;
} else {
$valid = $element->isValid($check[$key], $context) && $valid;
$data = $this->_dissolveArrayUnsetKey($data, $belongsTo, $key);
}
}
foreach ($this->getSubForms() as $key => $form) {
if (null !== $translator && !$form->hasTranslator()) {
$form->setTranslator($translator);
}
if (isset($data[$key]) && !$form->isArray()) {
$valid = $form->isValid($data[$key]) && $valid;
} else {
$valid = $form->isValid($data) && $valid;
}
}
$this->_errorsExist = !$valid;
// If manually flagged as an error, return invalid status
if ($this->_errorsForced) {
return false;
}
return $valid;
}
, Zend_Form
이 반복됩니다 양식에있는 모든 구성된 요소를 비교하고 전달 된 배열의 값과 비교하십시오. 일치하는 항목이 있으면 구성된 유효성 검사기에 대해 해당 값의 유효성을 검사합니다.
그래서 실행중인 양식을 작성한 다음 게시 | 데이터를 확인하십시오. 여기서 is_valid 양식을 확인할 수 있습니다. isValid() 함수에 $ _POST 또는 $ _GET 데이터를 전달해야합니다. 예 :
if ($request->isPost() && $form->isValid($request->getPost())) {
isValid() 함수의 Zend_Form 클래스이다. Form은 각 요소에 대한 모든 유효성 검사를 실행합니다 (첫 번째 유효성 검사가 실패하면 중지하도록 설정하지 않은 경우). 그런 다음 하위 양식에도 적용됩니다.
또는 당신은 사용할 수 있습니다
$username_stringlength_validate = new Zend_Validate_StringLength(6, 20);
$username = new Zend_Form_Element_Text('username');
$username->setLabel('Username: ')
->addFilters(array('StringTrim', 'HtmlEntities'))
->setAttrib('minlength', '6')
->setAttrib('class', 'required')
->removeDecorator('label')
->removeDecorator('HtmlTag')
->removeDecorator('DtDdWrapper')
->setDecorators(array(array('ViewHelper'), array('Errors')))
->addValidator($username_stringlength_validate);
- 1. 젠드 폼 유효성 검사
- 2. Codeigniter 폼 유효성 검사
- 3. MVC 폼 유효성 검사
- 4. Silex + 폼 유효성 검사
- 5. PHP에서 폼 유효성 검사
- 6. django의 폼 유효성 검사
- 7. 폼 유효성 검사
- 8. jquery 폼 유효성 검사
- 9. 젠드 프레임 워크 - 활성 레코드 + 폼 생성 + 유효성 검사?
- 10. 젠드 폼 유효성 확인에 도움이 필요합니다.
- 11. 레일 모달 폼 유효성 검사
- 12. ModelState를 사용하여 폼 유효성 검사
- 13. JavaScript의 고급 폼 유효성 검사
- 14. Recaptcha와 기존 폼 유효성 검사
- 15. sql + codeigniter가있는 폼 유효성 검사
- 16. jQuery를 폼 유효성 검사 논리
- 17. Magento ajax 폼 유효성 검사
- 18. jQuery와 PHP로 폼 유효성 검사
- 19. jquery 폼 유효성 검사 플러그인
- 20. jquery 폼 유효성 검사 문제
- 21. symfony2에서 동적 폼 유효성 검사
- 22. jQuery 폼 유효성 검사 문제
- 23. YUI 외에도 폼 유효성 검사
- 24. 폼 유효성 검사 및 MultiValueDictKeyError
- 25. Django Javascript 폼 유효성 검사
- 26. 스프링 폼 유효성 검사 문제
- 27. 뷰에서 Django 폼 유효성 검사
- 28. Django의 인라인 폼 유효성 검사
- 29. PHP 기반 폼 유효성 검사
- 30. Django 폼 유효성 검사 문제
보통 당신은 –
주어진 답변 중 하나를 수용하십시오 예를 들어 $ 형상 -> isValid() $ 형상 -> isValid ($ _ POST)에 값의 배열을 전달 왜 그들 중 누구도 당신의 질문에 대답하는 데 도움이되지 못했기 때문에 사람들은 대답을 업데이트 할 수있는 기회를 얻었습니다. 감사. – Gordon