나는 다른 것을 봤다 questions/Google 그림. 내 문제는 notEmpty
유효성 검사기가있는 빈 텍스트 상자로 양식을 제출할 때 오류가 발생하지 않는다는 것입니다.Zend Framework notEmpty 유효성 검사기 setRequired
먼저 notEmpty
과 setRequired
의 차이점을 이해하고 싶습니다. 이해하는 바와 같이 요소가 제출되고 값이 비어 있으면 유효성 검사기 notEmpty
이 오류를 발생시킵니다. 즉, 항목이 POST 데이터 (양식의 경우)에 존재하지 않으면 요소가 이 필요하지 않으면 오류가 생성되지 않습니다.. 요소가 이고 집합이 인 경우에만 실행됩니다. setRequired
메서드는 별도로 언급하지 않는 한 자동으로 notEmpty
유효성 검사기를 장면 뒤에 추가합니다. 이렇게하면 요소에 대한 항목이 존재해야하며 비어 있어서는 안됩니다. 옳은?
$username = new Zend_Form_Element_Text('txtUsername');
$username->addValidator(new Zend_Validate_NotEmpty(), true);
그리고 다른 텍스트 필드 같은 : 내가 너무 좋아 notEmpty
유효성 검사기를 추가 곳
지금, 나는 내 양식이 논리를 사용하려고 노력했다. 내가 값을 입력하지 않고 내 양식을 제출, 내 POST 데이터는 다음과 같습니다
(
[txtUsername] =>
[txtPassword] =>
[txtRepeatPassword] =>
)
그러나, isValid
여전히 true
로 평가하고 오류 메시지가 생성되지 않습니다. 왜? 요소가 POST 데이터에 항목을 가지고 있기 때문에 notEmpty
유효성 검사기가 값이 비어 있다고 결정하면 안됩니까? setRequired(true)
을 사용하면 원하는 방식으로 작동합니다. 값이 빈 문자열 일 때 사용자 이름이 비어 있지 않다고 판단하는 것만으로도 엉망이됩니다. :-)
미리 감사드립니다.
미리 'setAllowEmpty'가 표시되었지만'notEmpty'를 사용하는 다른 방법이라고 생각했습니다. 선택 요소를 사용하면 좋은 점을 알 수 있습니다. 훌륭한 답변을 해주셔서 감사합니다. – Andy0708