【发布时间】:2015-01-11 20:40:13
【问题描述】:
我不确定我是否正确地遵循它。我正在尝试将自定义错误消息设置为 Zend 表单,以便视图可以显示该错误消息。
这是我的控制器
public function indexAction()
{
$request = $this -> getRequest();
$frmRegister = new Application_Form_RegisterForm();
if ($request -> isPost())
{
if ($frmRegister -> isValid($request -> getPost()))
{
// Everything appears valid.
// Build the array
$data = array(
'firstname' => $request -> getPost('firstname'),
'lastname' => $request -> getPost('lastname'),
'email' => $request -> getPost('email'),
'password' => hash('SHA512', $request -> getPost('password'))
);
$result = $this -> userModel -> registerUser($data);
// $result['statusmsg'] returns an error message "The user already exists" and $result['status'] = 0
if ($result['status'] == 0)
{
$frmRegister -> addErrorMessage($result['statusmsg']) ;
$this -> view -> form = $frmRegister;
}
}
else
{
// Errors! We show the same page
$this -> view -> form = $frmRegister;
}
}
else
{
$this -> view -> form = $frmRegister;
}
}
查看页面
<?php
if(isset($this->form))
$errors = $this->form->getMessages();
if(count($errors) > 0 )
{
echo '<div class="alert alert-danger">';
foreach($errors as $field => $arrErrors)
{
foreach($arrErrors as $error )
{
echo '<li>' . $this->form->getElement($field)->getLabel() . ' - ' . $error . '</li>';
}
}
echo '</div>';
}
if(isset($this->loginError))
echo '<div class="alert alert-danger">'. $this->loginError . '</div>';
?>
问题是错误未显示。我哪里错了?
【问题讨论】:
标签: php forms zend-framework frameworks