当访问者将他们的电子邮件地址输入表单时,我想检查它是否是唯一的。所以我有一个简单的电子邮件表格:
class Form_Register extends Zend_Form
{
public function __construct($options = null)
{
parent::__construct($options);
$this->setName('register');
$email = new Zend_Form_Element_Text('Email');
$email->setLabel('Your email address:')
->setRequired(true)
->addFilter('StripTags')
->addFilter('StringTrim')
->addValidator('EmailAddress')
->addErrorMessage('Please check that email address is correct.');
$submit = new Zend_Form_Element_Submit('submit');
$submit->setAttrib('id', 'submitbutton');
$this->addElements(array($email, $submit));
}
}
如果请求是帖子,我会检查电子邮件是否唯一。我正在向元素添加错误消息,因为它不是唯一的,但它不会出现在我的视图中。
if ($this->getRequest()->isPost())
{
$formData = $this->_request->getPost();
// check if email is unique
$isUnique = FALSE;
if ( NULL != $member )
{
$form->Email->addErrors(array('That email is already in use.'))
->markAsError();
}
$form->populate($formData);
$this->view->form = $form;
我的观点只是回应了表格:
<?php echo $this->form ?>
答案 0 :(得分:0)
我对此问题的解决方案是使用Zend_Form_Decorator_Callback。
答案 1 :(得分:0)
我认为您的IF声明是错误的。确保你的代码进入IF循环。
尝试这样的事情:
if ( NULL != $member )
{
echo "inside IF loop";
} else {
echo "oops missed the loop";
}