在 Yii 框架中,我可以使用唯一验证规则来检查某个字段在某些条件下的唯一性(我知道有条件,但这个条件有点棘手)?即,我想检查 property_id 唯一的 num_days。
表格:
NUM PROP_ID
3 4
3 5
如果我尝试插入 3、6,验证应该通过,但在插入 3、4 时失败
最佳答案
查看 UniqueAttributesValidator , 还有 this answer .在链接中,您会看到他们已将 $this->attributename
用于 CUniqueValidator 的 criteria
选项的 params
数组,但对于某些原因 $this->attributename
对我来说是 null
。我相信这是因为 $this
没有被正确传递给验证器,所以无论如何最好使用 UniqueAttributesValidator 类,因为它就是为这些情况而设计的。
生成的 sql 将有一个 WHERE
子句,如下所示:
SELECT ... WHERE (`num`=:value) AND (`prop_id`=:prop_id) ...
对于 3、4 很容易失败,对于 3、6 很容易通过。所以它应该适合您的情况。
关于php - Yii 验证规则 - 唯一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10432591/