如何跳过 Rule 规则

有的时候,需要跳过验证规则,这个应该怎么做呢?

比如有一个表有 f1, f2, f3, f4, status 五个字段,正常情况下,都由定义的规则判断数据是否完整,但是比如我有一个动作,只是更新 status 这个字段,那在更新这个字段的时候,我需要跳过所有的规则或者只留下 status 的规则。不知这个应该如何处理比较好?

谢谢。

解决办法:

$model->save(false);

我想这个并非最好的解决方案~ :huh:

Me too. :rolleyes:

但是没有找到跳过验证的方法。

今天遇到一个更改password的问题, 顺便把 scenario 搞清楚了,

其实你的问题,可以交由设置这个规则有效范围“场景”,来达到指定规则只发生于某些操作~

嗯。这个原来和群里的“大P”讨论过一下。不过我认为那样还是有点繁琐。比如我这个保存的时候我可以指定一个不存在的场景来达到我的目的。但是这样貌似还是不是很和谐的。呵呵。保存的时候加一个 false 这样的话还是简单一点。

场景的问题我没有细看,不是很会用。也许是我搞错了。欢迎指出。谢谢。

如果你不希望使用rule,除了用save(false)外,你也可以用update($attributes)