繁体   English   中英

Yii2 对属性数组应用验证规则

[英]Yii2 apply validation rule on array of attributes

我使用 Yii2 和 model 规则进行验证。
我有一个$id属性,它是一个 hash 值。 验证规则如下所示:

 return [
            ['id', 'match', 'pattern' => '/^[a-f0-9]{16,32}$/i', 
                'on' => [self::SCENARIO_DEFAULT]],
            [...some more validation rules...]
  ]

这适用于$id = '17e94c10df492a39'

但是现在,我有一个 id 数组,如下所示:

$id_list = ['17e94c10df492a39','27e94c10df492a39','37e94c10df492a39'];

有没有办法为这个数组使用现有的验证器规则? 或者有没有办法使用数组上的匹配验证器定义新规则?

我知道,可以编写自己的验证器。 但如果这适用于 yii2 板载资源,那就太好了。

您正在寻找的是each核心验证器。 此验证器遍历数组并将定义的规则应用于数组中的每个项目。 您可以像这样定义规则:

return [
   [
       'id_list',
       'each',
       'rule' => ['match', 'pattern' => '/^[a-f0-9]{16,32}$/i'],
    ],
    // ... other rules ...
];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM