이 기사에서는 개발자가 Zend 프레임 워크를 기반으로 한 영어 이외의 웹 사이트 또는 응용 프로그램을 만들어야 할 때 발생하는 일반적인 문제에 대한 솔루션을 보여 드리겠습니다. Zend_form의 필드를 어떻게 표시합니까?
하나 이상의 사용자 정의 오류 메시지를 표시하는 zend_form_element는 유효하지 않습니까? 문제는 주로 Zend_form_element 클래스의 기본 반 직관적 인 방법에 의해 발생합니다. (여기에서 논의 된 솔루션은 Zend Framework 버전 1.12 이하에 유효합니다.)
코드
기사에서 사용할 코드를 보여 드리겠습니다. 첫째, 이것은 이름의 입력 필드와 데이터를 확인하는 데 필요한 유효성 검사기를 포함하는 양식입니다.
컨트롤러에서 필드가 유효한지 확인하고 그에 따라 행동합니다. 일반적으로 IndexController를 사용하지 않으며 특정 컨트롤러 에서이 유효성 검사가있을 수 있습니다. 어쨌든 예제를 단순화하기 위해 사용하겠습니다.
사용 된보기는 매우 간단합니다. 메시지와 양식 만 표시됩니다.
위의 소스 코드는 CSS 규칙없이 다음과 같이 렌더링됩니다.
<span><span><?php
</span></span><span><span>class Application_Form_User extends Zend_Form
</span></span><span><span>{
</span></span><span> <span>public function init() {
</span></span><span> <span>// create the field
</span></span><span> <span>$element = new Zend_Form_Element_Text("name");
</span></span><span> <span>$element->setLabel("Name");
</span></span><span>
</span><span> <span>// set the validators
</span></span><span> <span>$element->setValidators(array(
</span></span><span> <span>new Zend_Validate_Alpha(true),
</span></span><span> <span>new Zend_Validate_StringLength(
</span></span><span> <span>array("min" => 3, "max" => 50))
</span></span><span> <span>));
</span></span><span> <span>$element->setRequired();
</span></span><span>
</span><span> <span>// add the element to the form
</span></span><span> <span>$this->addElement($element);
</span></span><span>
</span><span> <span>// add a submit button
</span></span><span> <span>$element = new Zend_Form_Element_Submit("submit");
</span></span><span> <span>$element->setLabel("Submit");
</span></span><span> <span>$this->addElement($element);
</span></span><span> <span>}
</span></span><span><span>}</span></span>
<span><span><?php
</span></span><span><span>class IndexController extends Zend_Controller_Action
</span></span><span><span>{
</span></span><span> <span>public function init() {
</span></span><span> <span>}
</span></span><span>
</span><span> <span>public function indexAction() {
</span></span><span> <span>$form = new Application_Form_User();
</span></span><span>
</span><span> <span>if ($this->getRequest()->isPost() &&
</span></span><span> <span>$form->isValid($this->getRequest()->getPost())) {
</span></span><span> <span>$this->view->message = "Valid input";
</span></span><span> <span>}
</span></span><span> <span>else {
</span></span><span> <span>$this->view->form = $form;
</span></span><span> <span>}
</span></span><span> <span>}
</span></span><span><span>}</span></span>
<span><span><?php
</span></span><span><span>if (isset($this->message)) {
</span></span><span> <span>echo $this->message;
</span></span><span><span>}
</span></span><span><span>if (isset($this->form)) {
</span></span><span> <span>echo $this->form;
</span></span><span><span>}</span></span>
거의
입니다
. 방법이 있다는 것을 의미하지만 항상 예상대로 작동하지는 않습니다 (적어도 예상대로). 오류 메시지를 관리하는 방법은 다음과 같습니다.
setErrors (배열 $ 메시지)
<span><span><?php
</span></span><span><span>class Application_Form_User extends Zend_Form
</span></span><span><span>{
</span></span><span> <span>public function init() {
</span></span><span> <span>// create the field
</span></span><span> <span>$element = new Zend_Form_Element_Text("name");
</span></span><span> <span>$element->setLabel("Name");
</span></span><span>
</span><span> <span>// set the validators
</span></span><span> <span>$element->setValidators(array(
</span></span><span> <span>new Zend_Validate_Alpha(true),
</span></span><span> <span>new Zend_Validate_StringLength(
</span></span><span> <span>array("min" => 3, "max" => 50))
</span></span><span> <span>));
</span></span><span> <span>$element->setRequired();
</span></span><span>
</span><span> <span>// add the element to the form
</span></span><span> <span>$this->addElement($element);
</span></span><span>
</span><span> <span>// add a submit button
</span></span><span> <span>$element = new Zend_Form_Element_Submit("submit");
</span></span><span> <span>$element->setLabel("Submit");
</span></span><span> <span>$this->addElement($element);
</span></span><span> <span>}
</span></span><span><span>}</span></span>
<span><span><?php
</span></span><span><span>class IndexController extends Zend_Controller_Action
</span></span><span><span>{
</span></span><span> <span>public function init() {
</span></span><span> <span>}
</span></span><span>
</span><span> <span>public function indexAction() {
</span></span><span> <span>$form = new Application_Form_User();
</span></span><span>
</span><span> <span>if ($this->getRequest()->isPost() &&
</span></span><span> <span>$form->isValid($this->getRequest()->getPost())) {
</span></span><span> <span>$this->view->message = "Valid input";
</span></span><span> <span>}
</span></span><span> <span>else {
</span></span><span> <span>$this->view->form = $form;
</span></span><span> <span>}
</span></span><span> <span>}
</span></span><span><span>}</span></span>
<span><span><?php
</span></span><span><span>if (isset($this->message)) {
</span></span><span> <span>echo $this->message;
</span></span><span><span>}
</span></span><span><span>if (isset($this->form)) {
</span></span><span> <span>echo $this->form;
</span></span><span><span>}</span></span>
<span><span><?php
</span></span><span><span>// set the custom message in the case of an error
</span></span><span><span>$element->setErrors(array("The input is invalid. The value must have only alphabetic characters and spaces and its length must be between 3 and 50 characters."));</span></span>
<span><span><?php
</span></span><span><span>class Application_Form_User extends Zend_Form
</span></span><span><span>{
</span></span><span> <span>public function init() {
</span></span><span> <span>// create the field
</span></span><span> <span>$element = new Zend_Form_Element_Text("name");
</span></span><span> <span>$element->setLabel("Name");
</span></span><span>
</span><span> <span>// set the validators
</span></span><span> <span>$element->setValidators(array(
</span></span><span> <span>new Zend_Validate_Alpha(true),
</span></span><span> <span>new Zend_Validate_StringLength(
</span></span><span> <span>array("min" => 3, "max" => 50))
</span></span><span> <span>));
</span></span><span> <span>$element->setRequired();
</span></span><span>
</span><span> <span>// add the element to the form
</span></span><span> <span>$this->addElement($element);
</span></span><span>
</span><span> <span>// add a submit button
</span></span><span> <span>$element = new Zend_Form_Element_Submit("submit");
</span></span><span> <span>$element->setLabel("Submit");
</span></span><span> <span>$this->addElement($element);
</span></span><span> <span>}
</span></span><span><span>}</span></span>
이 예에서는 setMessage () 메서드가 사용됩니다. '이메일'양식 요소의 'NOTEMPTY'유효성 검사기에 대한 사용자 정의 오류 메시지를 설정합니다.
폼 요소에 대해 여러 사용자 정의 오류 메시지를 설정하려면 어떻게해야합니까? Zend? Zend에서 양식 요소에 대해 여러 사용자 정의 오류 메시지를 설정하려면 setMessages () 메소드를 사용할 수 있습니다. 이 메소드는 일련의 오류 메시지를 허용합니다. 예는 다음과 같습니다.
$ email = new Zend_form_Element_text ( 'email'); setLabel ( '이메일 주소') -> addValidator ( 'notempty', true) -> addValidator ( 'emailAddress'); getValidator ( 'notempty')-> setMessages (array ( zend_validate_notempty :: is_empty => '이메일 주소를 입력하십시오',
이 예에서 SetMessages () 메소드는'이메일 '양식 요소의'NOTEMPTY '유효성 검사기에 대한 여러 사용자 정의 오류 메시지를 설정하는 데 사용됩니다. $ form = new Zend_form (); addElement ( 'text', 'email', Array ( 'validators'=> array ( 배열 ( 'validator'=> 'notempty', '옵션'=> 배열 ( 'message'=> 'email이 필요함'), 'emailAddress', '옵션'=> 배열 ( 'message'=> 'invalid email address'))));
if (! $ form-> isvalid ($ _ post)) { > $ form-> adderror ( '제출에 오류가 있었다. 수정하고 다시 시도하십시오.'); } 이 예에서는 adderror () 메소드 양식이 유효성 검사에 실패 할 때 표시되는 사용자 정의 오류 메시지를 추가하는 데 사용됩니다.
Zend에서 기본 오류 메시지를 변경하려면 Zend에서 기본 오류 메시지를 변경할 수 있습니다. setMessage () 메소드를 사용하여 이 메소드를 사용하면 특정 유효성 검사기에 대한 사용자 정의 오류 메시지를 설정할 수 있습니다. 예는 다음과 같습니다.
$ email = new Zend_form_Element_text ( 'email'); setLabel ( '이메일 주소') -> addValidator ( 'notempty', true)
-> addValidator ( 'emailAddress'); getValidator ( 'notempty')-> setMessage ( '이메일 주소를 입력하십시오'); getValidator ( 'emailAddress')-> setMessage ( '유효한 이메일 주소를 입력하십시오');
이 예에서는 setMessage () 메소드가 사용하여 기본 오류 메시지를 변경하는 데 사용됩니다. '이메일'양식 요소의 'notempty'및 'emailAddress'유효성 검사기.
Zend에 필요한 양식 요소에 대해 사용자 정의 오류 메시지를 설정하려면 양식 요소 인 경우 어떻게하는 경우 Zend에서 필요합니다. setRequired () 및 adderrorMessage () 메소드를 사용하여 사용자 정의 오류 메시지를 설정할 수 있습니다. 예는 다음과 같습니다.
$ email = new Zend_form_element_text ( 'email'); setLabel ( '이메일 주소') -> setRequired (true) -> adderrormessage ( '이메일이 필요합니다');
이 예에서는 setRequired () 메소드가 '이메일'양식 요소를 필요로하는 데 사용됩니다. adderrorMessage () 메소드는 사용자 정의 오류 메시지를 설정하는 데 사용됩니다.
위 내용은 PHP 마스터 | zend_form_element에 대한 사용자 정의 오류 메시지를 설정합니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!