[英]Laravel 8 unique validation rule doesn't work with user_id
我正在使用 Laravel 8 和唯一驗證規則來確保記錄保持唯一性,我現在正在嘗試擴展它,以便它對每個用戶也是唯一的,但是在擴展功能並使用數組形式的規則時它不會'似乎沒有驗證用戶 ID,而是給了我一個完整性約束違規。
所以我有一個名為brands
的表,該表包含有問題的兩列: brand
和user_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.