我写了一些代码,用于向zend框架元素添加自定义错误消息,但事情是错误没有显示出来。我有相关代码的以下部分:(我可以在其他地方添加errormessage)。
if($this->_request->isPost() && $form->isValid($this->_request->getPost())){
$afgehandeldValue = $form->getValue('afgehandeld');
if($afgehandeldValue == 0)
{
$conversationValues['conversation_handled'] = 0;
}
else
{
$checkFollowUp = $form->getValue('opvolging');
if($checkFollowUp == 0)
{
$conversationValues['conversation_handled'] = 1;
}
else
{
$form->getElement('opvolging')
->addError('Je mag niemand opgeven voor een opvolgend gesprek als afgehandeld is aangevinkt.')
->markAsError();
}
}
答案 0 :(得分:0)
这应该有效(markAsError()
不需要addError()
自动将此元素标记为无效)。也许你的条件不正确?在设置错误之前尝试 echo ,以查看这部分代码是否实际运行。
答案 1 :(得分:0)
假设您使用的是zf1 您可以在zend表单中添加自定义错误消息,无需在控制器中执行此操作。
$this->addElement('text', 'text', array(
'required' => true,
'validators' => array(
array('NotEmpty',true,'options' => array('messages' => 'please enter some text')),
),
'label' => 'Text Element:',
'placeholder'=>"Insert Text",
));
答案 2 :(得分:0)
如果您正在使用Zend framework 1.X并希望该特定表单元素显示错误,您可以在Element这样的表单中执行此操作。
$opvolging = new Zend_Form_Element_Text('opvolging',
array('placeholder' => 'opvolging')
);
$opvolging ->setLabel('opvolging : ')
->setRequired(true)
->addFilter('StripTags')
->setAttrib('accept-charset', 'utf-8')
->addFilter('StringTrim')
->addValidator('NotEmpty')
->getValidator('NotEmpty')->setMessage('Je mag niemand opgeven voor een opvolgend gesprek als afgehandeld is aangevinkt.');
并在你的动作控制器中
$opvolging = $form->getValue('opvolging');