使用范围验证唯一

时间:2015-04-08 13:43:55

标签: php cakephp-3.0

我在adm_users中有一个表database,其中包含以下两行:

| id | username         | club_id |
|----|------------------|---------|
| 1  | daniel@gmail.com | 1       |
| 2  | jhon@gmail.com   | 1       |

我的逻辑是,电子邮件仅对同一个club_id是唯一的,这是验证码:

->add('username', 'unique', [
    'rule' => ['validateUnique',
        ['scope' => 'club_id']
    ],
    'provider' => 'table'
])

问题是,规则允许将daniel@gmail.com更改为jhon@gmail.com,它们具有相同的club_Id,因此不应发生这种情况。

这是SQL Log

的结果
SELECT 1 AS `existing` FROM adm_users AdmUsers WHERE (AdmUsers.username = 'jhon@gmail.com' AND AdmUsers.club_id = NULL AND NOT (AdmUsers.id = 15)) LIMIT 1

0 个答案:

没有答案