我正在尝试验证具有以下结构的模型:
+------------+
| User |
+------------+
| id |
| username |
| company_id |
+------------+
用户可以属于公司的位置。目前,我正在使用以下规则验证users表中的唯一用户名:
'username' => ["unique:users"]
编辑当前用户时,我想忽略当前行,我这样做是使用:
'username' => ["unique:users,username,10"]
它有效。
现在,我想验证用户名在公司中是唯一的。
如何验证字段在某些行中是唯一的(其中company_id = some-id)?
答案 0 :(得分:2)
虽然Laravel文档中没有记录,但可以通过添加将转换到where子句的额外参数来完成。
以下将按您的要求执行:
'username' => ["unique:users,username,10,id,company_id,31"]
它将被翻译成SQL语句,如下所示:
select
count(*)
from
users
where username = ?
and id <> 10
and company_id = 31