我正在使用 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()
我錯過了什么?
uj5u.com熱心網友回復:
根據檔案,您必須使用該ignore()功能:
Rule::unique('users')->ignore($user->id),
關于你的情況:
Rule::unique('brands')->ignore($user->id, 'user_id'),
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/377554.html
上一篇:輸入如何只接受十六進制數字
