加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

zend-framework2 – 选择元素验证

发布时间:2020-12-13 16:19:09 所属栏目:PHP教程 来源:网络整理
导读:我的表单中有一个Select元素,如下所示: $this-add(array( 'name' = 'cat_id','type' = 'ZendFormElementSelect','options' = array( 'label' = 'Categoria','empty_option' = '','value_options' = array( '' = '',),)); value_options在我的控制器中填
我的表单中有一个Select元素,如下所示:

$this->add(array(
    'name' => 'cat_id','type' => 'ZendFormElementSelect','options' => array(
        'label' => 'Categoria','empty_option' => '','value_options' => array(
            '' => '',),));

value_options在我的控制器中填充了数据库信息…(有更好的方法吗?)

我有一个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元素,效果很好.只有选择元素我才会遇到这个问题.

额外的问题:

如果我想使用InArray Validator,如下所示:

array(
    'name'    => 'InArray','options' => array(
        'haystack' => array( ... ),'messages' => array(
            'notInArray' => 'Valor n?o encontrado no banco de dados' 
        ),

我需要一直填写干草堆fild?有没有办法说验证器使用表格value_options?

TNKS!

编辑

我不确定,因为没有人确认过,但我猜ZF2在为其设置类型时对表单元素进行默认验证.

举个例子,

$this->add(array(
    'name' => 'cat_id','options' => array(
        'empty_option' => '','value_options' => array(
            // ...
        ),'attributes' => array(
        // ...
    ),));

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

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

解决方法

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

$这 – > setUseInputFilterDefaults(假);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读