【问题标题】:Email unique in DB per Client每个客户在数据库中唯一的电子邮件
【发布时间】:2017-06-22 18:00:15
【问题描述】:

我正在使用 laravel 5.4 和 couchbase 和 php 7.1

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

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

这工作正常。 现在,我们对我们的应用程序有一个新请求,即用户的电子邮件必须是唯一的,而不是整个用户表,而是一个客户端,因此我们可以拥有多个相同的电子邮件地址,但在 '文档中的client_id'字段。

我怎样才能把它放在我的请求类中?

【问题讨论】:

  • 检查答案here。希望对你有帮助

标签: php laravel laravel-5 laravel-5.4 php-7.1


【解决方案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,

在上述规则中,只有 user_id 为 Auth::id() 的行才会包含在唯一检查中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-08
    • 2017-12-15
    • 2021-10-04
    • 1970-01-01
    • 2019-04-26
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    相关资源
    最近更新 更多