gpt4 book ai didi

validation - 将自定义消息添加到 Zend Framework 2 回调验证器

转载 作者:行者123 更新时间:2023-12-04 21:52:40 25 4
gpt4 key购买 nike

我想在下面的回调验证器中添加一条自定义错误消息(例如“需要邮政编码”),我该怎么做?

   $zip = new \Zend\InputFilter\Input('zip');
$zip->setRequired(false);
$zip->getValidatorChain()
->attach(new \Zend\Validator\Callback(function ($value, $context) {
if($context['location_type_id'] == \Application\Model\ProjectModel::$LOCATION_TYPE_ID_AT_AN_ADDRESS)
{
return (isset($value)&&($value!= NULL))? $value: false;
}
return true;
}));

如果您需要更多信息,请告诉我,我会更新。
谢谢你的帮助!

流产

最佳答案

只是为了投入我的两分钱,还可以通过配置设置自定义消息。我经常在使用工厂类型方法时使用它,如下所示:

'name' => array(
...
'validators' => array(
new \Zend\Validator\Callback(
array(
'messages' => array(\Zend\Validator\Callback::INVALID_VALUE => '%value% can only be Foo'),
'callback' => function($value){
return $value == 'Foo';
}))
)
),

这会产生类似“Bar 只能是 Foo”的消息。

仔细看 \Zend\Validator\Callback::INVALID_VALUE键,这是一个定义在\Zend\Validator\Callback 中的常量:
const INVALID_VALUE = 'callbackValue';

在该类中用于设置验证器使用的消息:
protected $messageTemplates = array(
self::INVALID_VALUE => "The input is not valid",
self::INVALID_CALLBACK => "An exception has been raised within the callback",
);

这意味着您可以安全地使用 \Zend\Validator\Callback::INVALID_VALUE => 'Custom message'
我不确定这是否违反了编码原则,如果确实如此,请有人纠正我。

关于validation - 将自定义消息添加到 Zend Framework 2 回调验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18588516/

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