我正在使用laravel 5.4 with couchbase with php 7.1
在我们的系统中,可以创建新用户。直到现在,电子邮件字段必须是数据库用户表所独有的,没问题,我们在请求中使用了这个
'email' => 'required|email|unique:users,email,NULL,user_id,datetime_deleted,NULL',
这很好用。 现在,我们向我们的应用程序发出了一个新请求,即用户的电子邮件必须是唯一的,不是整个用户表,而是一个客户端,所以我们可以有几次相同的电子邮件地址,但是'文档中的client_id'字段。
我如何把它放在我的请求类中?
答案 0 :(得分:1)
对于laravel 5.3及以上 您可以添加其他where子句以进行唯一验证,如下所示
'email' => Rule::unique('users')->where(function ($query) {
$query->where('user_id', Auth::user()->id);
})
别忘了提及
使用Illuminate \ Validation \ Rule;
或尝试 对于laravel 5.2
插入
'email' => 'unique:users,email,NULL,id,user_id,'.Auth::user()->id,
更新时
'email' => 'unique:users,email,{id of object to edit},id,user_id,'.Auth::user()->id,
在上面的规则中,只有具有Auth :: id()的user_id的行才会包含在唯一检查中。