22

我知道您可以拥有仅适用于一种情况的验证规则:

array('username', 'exist', 'on' => 'update'),

现在我想知道是否有可能做相反的事情:除了给定的场景之外,每次都适用的规则?

现在看到的唯一解决方案是列出所有其他场景,但如果我们稍后需要添加一些新闻场景,这并不漂亮。

array('username', 'exist', 'on' => array('create', 'search', ...),//all the scenarios except update
4

2 回答 2

37

从 Yii 1.1.11 开始,您可以使用except关键字:

array('username', 'exist', 'except' => 'update'),

看看这个页面。那里有一个小例子。

文档链接

于 2012-11-07T22:30:21.267 回答
1

在 Yii 2.0 中以同样的方式工作。

['username', 'required', 'except' => 'update']

数组中验证器名称之前的每个键都是验证器类本身的属性。您可以在https://www.yiiframework.com/doc/api/2.0/yii-validators-validator中查看可用的属性

我知道这是一个老问题,但每次我忘记 yii2 在验证器类中有一个 except 属性。

https://www.yiiframework.com/doc/guide/2.0/en/input-validation了解更高级的技术

于 2019-07-04T20:50:40.363 回答