默认情况下,我不想在验证失败时在输入元素下显示 Zend 验证器消息但我需要根据我的要求提供 Zend 验证消息。
有什么建议么?
抱歉,您的回答不是您最初问题的答案!
您的标题要求提供一个通用解决方案,如何在整个应用程序中禁用验证消息,解决方案是:
<?php
namespace YourApp;
use Zend\Form\View\Helper\FormRow;
class Module
{
public function getViewHelperConfig()
{
return array(
'factories' => array(
'formRow' => function($sm) {
$helper = new FormRow();
$helper->setRenderErrors(false);
return $helper;
}
),
);
}
?>
我得到了解决方案。解决方案在这里。
我正在使用
<?php echo $this->formRow($form->get('username')); ?>
现在我已将其替换为
<?php echo $this->formElement($form->get('username')); ?>
为了根据我对视图的要求获取错误消息,我使用了
echo $this->formElementErrors($form->get('username')); // Errors must be capital letter
感谢所有回复。
第一:不要使用formCollection()
-ViewHelper
第二:使用formRow()
-ViewHelper 渲染表单并将第三个参数设置为 false。你可以在这里看到这个:Zend\Form\View\Helper\FormRow#157
echo $this->formRow($element, $labelPosition, $renderErrors);
$element
应该是要呈现的表单元素,即:$this->form->get('elementName')
$labelPosition
如果需要默认值,可以简单地设置为 null
$renderErrors
是一个布尔值,指示是否应呈现错误