updatePasswordAction을 구현하고 있으며 현재 잘못된 암호로 오류를 표시하지 않습니다. Zend_Validate 클래스를 사용하여 제공된 레코드 -> 암호와 함께 구현할 수 없으므로 이제 컨트롤러 동작에서 유효성을 검사했습니다. 실패하면 폼 요소에 오류 메시지를 추가합니다. 이것은 $form->isValid
을 실행하기 직전입니다. 어쨌든, 그 일. 유효성 검사가 실패하면 요소에 대한 오류 메시지가 표시되지 않습니다. 어떤 도움이라도 대단히 감사하겠습니다.Zend_Form이 addError 호출과 함께 오류 메시지를 표시하지 않습니다.
는 참고 : 나는 빈 현재 암호를 제출하면, 그 다음 무효로 양식 자체가 발생하지 않습니다 요소에 오류가 추가 검증
class Admin_Form_UserPassword extends Katana_Form
{
public function init()
{
$element = $this->createElement('hidden', 'id');
$this->addElement($element);
$element = $this->createElement('password','password');
$element->setLabel('Current Password:');
$element->setRequired(true);
$this->addElement($element);
$element = $this->createElement('password','new_password');
$element->setLabel('New Password:');
$element->addValidator('StringLength', false, array(6,24));
$element->setRequired(true);
$element->addValidator('NotEmpty');
$this->addElement($element);
$element = $this->createElement('password','new_password_confirm');
$element->setLabel('Confirm:');
$element->addValidator('StringLength', false, array(6,24));
$element->addValidator('IdenticalField', false, array('new_password', 'Confirm Password'));
$element->setRequired(true);
$this->addElement($element);
$this->addElement('submit', 'submit', array('label' => 'Submit'));
}
}
public function updatePasswordAction()
{
$resourceModel = new Core_Model_Resource_User();
$form = new Admin_Form_UserPassword();
$form->setMethod(Katana_Form::METHOD_POST);
$form->setAction($this->getActionUrl('update-password'));
if($this->getRequest()->isPost()){
$id = $this->getRequest()->getParam('id');
$record = $resourceModel->find($id)->current();
$currPassword = $record->password;
$typedPassword = md5($this->getRequest()->getParam('password'));
if($currPassword !== $typedPassword){
$form->getElement('password')->addError('Current password is incorrect.');
}
if($form->isValid($_POST)){
$data = $form->getValues();
$result = $resourceModel->updatePassword($id, $data['new_password']);
if($result){
$this->redirectSimple('list');
}
}
} else {
$id = $this->getRequest()->getParam('id');
$recordData = array(
'id' => $id
);
$form->populate($recordData);
}
$this->getView()->form = $form;
}
'작동하지 않음'이란 무엇을 의미합니까? 약간의 오류가 있습니까? 아무 반응이 없습니다? – BartekR
유효하지 않은 currentpassword를 제출하면 해당 오류 메시지가 표시되지 않습니다. ($ form-> isValid ($ _ POST)) { – jkushner
}을 실행하기 바로 전에 updatePasswordAction 내에서 $ form-> getElement ('password') -> addError ('현재 암호가 잘못되었습니다.') 'Zend_Form_Element :: addError()'는 추가 함수이므로 Zend_Form :: getErrorMessages()를 사용하여 검색해야합니다. 'getErrorMessagess()'를 사용합니까? – BartekR