gpt4 book ai didi

zend-framework2 - 选择元素验证

转载 作者:行者123 更新时间:2023-12-04 06:59:02 24 4
gpt4 key购买 nike

我的表单中有一个 Select 元素,如下所示:

$this->add(array(
'name' => 'cat_id',
'type' => 'Zend\Form\Element\Select',
'options' => array(
'label' => 'Categoria',
'empty_option' => '',
'value_options' => array(
'' => '',
),
),
));
value_options在我的 Controller 中填充了数据库信息......(有更好的方法吗?)

我有一个 InputFilter 给他,像这样:
$this->add(array(
'name' => 'cat_id',
'required' => true,
'validators' => array(
array(
'name' => 'NotEmpty',
'break_chain_on_failure' => true,
'options' => array(
'messages' => array('isEmpty' => 'O campo "Categoria" é obrigatório'),
),
),
),
));

请注意,我想更改 isEmpty消息……这就是问题所在!

当我提交表单时,我仍然收到相同的英文消息:
cat_id:
isEmpty : Value is required and can't be empty

所以我的问题是:为什么我还有这条消息?它来自哪里?我怎样才能改变它?

Ps.:使用 Text 元素,效果很好。只有使用 Select 元素,我才会遇到这个问题。

额外问题:

如果我想使用 InArray 验证器,如下所示:
array(
'name' => 'InArray',
'options' => array(
'haystack' => array( ... ),
'messages' => array(
'notInArray' => 'Valor não encontrado no banco de dados'
),
),
),

我需要总是填写 haystack菲尔德?没有办法告诉验证器使用表单 value_options ?

恩克斯!

编辑

我不确定 ,因为没有人确认过这一点,但我猜当您设置 type 时,ZF2 会对表单元素进行默认验证。为了它。

举个例子,
$this->add(array(
'name' => 'cat_id',
'type' => 'Zend\Form\Element\Select',
'options' => array(
'empty_option' => '',
'value_options' => array(
// ...
),
),
'attributes' => array(
// ...
),
));

在这种情况下,ZF2 希望为 Select 元素创建一些默认验证,例如检查是否为空并检查 haystack。

那么如何覆盖此验证中的消息?

最佳答案

有一种方法可以解决这个问题。
它应该删除默认的验证消息。
只需在表单的构造函数中添加该行即可。

$this->setUseInputFilterDefaults(false);

关于zend-framework2 - 选择元素验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13255535/

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