我有一個名為 的表,它由 、 和其他一些目前不重要的字段組成。Sidesidnameside_category_id我想驗證在創建新記錄時,該記錄尚不存在。因此,假設我在數據庫中有一條記錄,例如:sideid: 1name: Saladside_category_id: 3如果我嘗試插入一條新記錄,然后創建必須失敗并返回錯誤。name = 'salad'side_category_id = 3我通過使用以下規則實現了這一點:$rules = [ 'name' => 'required', 'side_category_id' => 'required|exists:side_categories,id|unique:sides,side_category_id,NULL,id,name,' . $this->request->get('name')]目前為止,一切都好。它按預期工作。但是現在,如果我想編輯記錄并在沒有任何修改的情況下保存它,它會返回一個錯誤,這不是我想要的結果。如果我嘗試在不進行任何修改的情況下更新記錄,它應該會成功。如何更新我的規則以實現此目的?
1 回答

小唯快跑啊
TA貢獻1863條經驗 獲得超2個贊
你可以使用規則::唯一()
用于像這樣創建使用
$rules = [
'name' => ['required'],
'side_category_id' => ['required',Rule::unique('sides', 'name')->where(function ($query) use($category_id) {
return $query->where('side_category_id', $category_id);
}),Rule::exists('side_categories')]
]
進行更新
$rules = [
'name' => ['required'],
'side_category_id' => ['required',Rule::unique('sides', 'name')->where(function ($query) use($category_id) {
return $query->where('side_category_id', $category_id);
})->ignore($id),Rule::exists('side_categories')]
]
//$id should be you parameter
- 1 回答
- 0 關注
- 86 瀏覽
添加回答
舉報
0/150
提交
取消