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