亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

拉拉維爾驗證規則在嘗試更新同一記錄而不進行任何更改時失敗

拉拉維爾驗證規則在嘗試更新同一記錄而不進行任何更改時失敗

PHP
慕容森 2022-09-25 18:59:44
我有一個名為 的表,它由 、 和其他一些目前不重要的字段組成。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


查看完整回答
反對 回復 2022-09-25
  • 1 回答
  • 0 關注
  • 86 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號