簡體   English   中英

Laravel 8 唯一驗證規則不適用於 user_id

[英]Laravel 8 unique validation rule doesn't work with user_id

我正在使用 Laravel 8 和唯一驗證規則來確保記錄保持唯一性,我現在正在嘗試擴展它,以便它對每個用戶也是唯一的,但是在擴展功能並使用數組形式的規則時它不會'似乎沒有驗證用戶 ID,而是給了我一個完整性約束違規。

所以我有一個名為brands的表,該表包含有問題的兩列: branduser_id ,我需要確保在存儲記錄時,品牌對brand列是唯一的,並且登錄的用戶 ID 是制作的請求,例如:

兩個用戶可以擁有同一個品牌,但一個用戶不能擁有多個同一個品牌。

$validator = Validator::make($request->all(), [
    'brand' => [
        'required',
        'string',
        Rule::unique('brands')->where(function ($query) {
            return $query->where('user_id', Auth::id());
        })
    ],
    'url' => 'required|string',
    'telephone' => 'required|string|min:11|max:11'
]);

我也試過:

'brand' => 'required|string|unique:brands,brand,user_id,' . Auth::id()

我錯過了什么?

根據文檔,您必須使用ignore() function:

Rule::unique('users')->ignore($user->id),

在你的情況下:

Rule::unique('brands')->ignore($user->id, 'user_id'),

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM