Laravel中的唯一验证取决于用户ID



在我的图书应用程序中,我对商店请求有以下规则:

'title' => 'unique:books,title|required|min:3|max:128,' . $this->user()->id.',user_id',

此时,使用 StoreRequest 中的验证规则,我收到错误"此标题已添加"(这是正确的,但标题是由其他用户添加的,而不是由尝试添加它的用户添加的(。

我想要实现的是标题的唯一规则,但仅适用于此用户集合。例如:2 个不同的用户可以声明相同的书名,但同一个用户不能复制它。

怎么了?

旧的Laravel 5验证文档有这样的例子:

'email' => 'unique:users,email_address,NULL,id,account_id,1'

它仍然适用于Laravel 8。该示例检查一个唯一的email_address其中account_id == 1 ;

当前的验证文档(Laravel 8(以这种方式显示了示例:

'email' => Rule::unique('users')->where(function ($query) {
    return $query->where('account_id', 1);
})
<小时 />

在 docu 页面中搜索"添加附加 where 子句"。

试试这个:

'title'      => 'required|string|unique:tblbooks,id,'.$request->input('title'),

试试这个。

'title' => 'required|min:3|max:128|unique:books,title,user_id,'.Auth::user()->id,
'title' => 'unique:books,user_id|required|min:3|max:128,' . $this->user()->id,

似乎可以解决问题!谢谢<</p>

div class="one_answers">

试试这个

'title' => 'required|min:3|max:128|unique:books,title,NULL,id,user_id,'.Auth::user()->id,

相关内容

最新更新