gpt4 book ai didi

php - 使用 Zend_Form_Element_Select 时访问 InArray 验证器的自定义错误消息

转载 作者:搜寻专家 更新时间:2023-10-31 20:56:25 24 4
gpt4 key购买 nike

我正在使用 Zend Framework 1.62(因为我们正在将成品部署到 Red Hat 实例,它没有足够高的 PHP 版本来支持 > ZF1.62)。

在使用 Zend Form 创建表单时,我添加了一个选择元素,添加了一些多选项。我使用 Zend Form 作为对象内验证层,通过它传递对象值并使用 isValid 方法来确定是否所有值都在正常参数范围内。

Zend_Form_Element_Select 完全按照预期工作,如果输入了除我添加的多选选项之一以外的任何其他值,则显示无效。

当我想在某个时候显示表单时,问题就来了,我无法编辑由 ZF 自动添加的预注册“InArray”验证器创建的错误消息。我知道我可以禁用此行为,但除了错误消息外它的效果很好。我尝试了以下方法:

$this->getElement('country')->getValidator('InArray')->setMessage('The country is not in the approved lists of countries');

// Doesn't work at all.

$this->getElement('country')->setErrorMessage('The country is not in the approved lists of countries');

//在应用程序的其他地方引起冲突,并且不允许对错误消息进行精细控制。

有人有什么想法吗?

最佳答案

我通常按照下面的示例设置验证器:

$this->addElement('text', 'employee_email', array(
'filters' => array('StringTrim'),
'validators' => array(
array('Db_NoRecordExists', false, array(
'employees',
'employee_email',
'messages' => array(Zend_Validate_Db_Abstract::ERROR_RECORD_FOUND => 'A user with email address %value% already exists')
))
),
'label' => 'Email address',
'required' => true,
));

元素选项中的验证器数组可以采用验证器名称(字符串)或数组。

传递数组时,第一个值是名称,第三个是验证器的选项数组。您可以在此选项数组中为您的元素指定带有自定义消息的关键消息。

关于php - 使用 Zend_Form_Element_Select 时访问 InArray 验证器的自定义错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1321820/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com