php - Yii 验证规则 - 唯一

标签 php yii

在 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/

相关文章:

php - Yii 1.1.14 与 Composer 自动加载

php - 获取 UTF-8 字符串的第一个字符

Yii2 Gridview 获取所有分页的所有选定行

php - 在 Yii 框架中登录后重定向页面

c# - 检测传入的 PHP 帖子,保存文件

php - 如何重定向到登录页面然后重定向回php中的上一页

php - 从 PHP 中的数组中删除空的 stdclass 对象

javascript - 如何通过 POST 将双 slider 最小值和最大值发送到 PHP

php - 仅用 addslashes(string) 就可以防止 SQL 注入(inject)吗?

仅当存在另一个字段时才进行 yii 验证