Php 如何在zf2中验证控制器中的两个字段
表单中有两个字段selectbox1和selectebox2,我想验证它们的值是否相同。如果它们具有相同的值,则返回表单并显示错误消息。我无法进行验证 在控制器中:Php 如何在zf2中验证控制器中的两个字段,php,zend-framework,Php,Zend Framework,表单中有两个字段selectbox1和selectebox2,我想验证它们的值是否相同。如果它们具有相同的值,则返回表单并显示错误消息。我无法进行验证 在控制器中: $know_lang = $form->get('language_help')->getValue(); $need_lang = $form->get('language_need')->getValue(); if($know_lang == $need_lang){ $form->g
$know_lang = $form->get('language_help')->getValue();
$need_lang = $form->get('language_need')->getValue();
if($know_lang == $need_lang){
$form->get('language_need')->setMessages(array('Please Select different language'));
return false;
}
是的,我找到了解决办法 内部控制器 试试这个
try {
$this->checkEmailExist($need_lang,$know_lang);
} catch (\Exception $e) {
$form->setMessages(array(
'language_help' => array($e->getMessage())
));
return new ViewModel(array(
'form' => $form
));
}
再做一个功能
public function checkEmailExist($email){
// Your Db Query
if($row) {
throw new \Exception("Email already exist");
}
return true;
}
是的,我找到了解决办法 内部控制器 试试这个
try {
$this->checkEmailExist($need_lang,$know_lang);
} catch (\Exception $e) {
$form->setMessages(array(
'language_help' => array($e->getMessage())
));
return new ViewModel(array(
'form' => $form
));
}
再做一个功能
public function checkEmailExist($email){
// Your Db Query
if($row) {
throw new \Exception("Email already exist");
}
return true;
}
您可以使用zf2验证器显示您为验证添加的代码这是相同的,但我想知道如何获得它@好的。您的代码看起来是正确的。到底发生了什么?消息没有显示吗?除了返回false。您必须将表单传递给视图。返回['form'=>$form];您可以使用zf2验证器显示您为验证添加的代码这是相同的,但我想知道如何获得它@好的。您的代码看起来是正确的。到底发生了什么?消息没有显示吗?除了返回false。您必须将表单传递给视图。返回['form'=>$form];