2017-06-22 58 views
0

我正在使用laravel 5.4,使用php 7.1的couchbase在每个客户端的数据库中唯一的电子邮件

在我们的系统中,可以创建新用户。截至目前,电子邮件字段必须是唯一的数据库用户表,没问题,我们在请求中使用此

'email'  => 'required|email|unique:users,email,NULL,user_id,datetime_deleted,NULL', 

这是工作的罚款。 现在,我们向我们的应用程序发出了一个新请求,即用户的电子邮件必须是唯一的,而不是整个用户表,但是对于一个客户端,所以我们可以有几次相同的电子邮件地址,但是文档中的'client_id'字段。

我怎么把这个放在我的请求类中?

+0

检查答案[here](https://stackoverflow.com/a/44658475/7894379)。希望它能帮助你 –

回答

1

对于laravel 5.3及以上 您可以添加额外的where子句独特的验证如下

'email' => Rule::unique('users')->where(function ($query) { 
    $query->where('user_id', Auth::user()->id); 
}) 

不要忘记提及 使用照亮\验证\规则;

,或者尝试 对于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, 

在规则之上,只有验证的USER_ID :: ID行()将包含在独特的支票中。

相关问题