搜尋

首頁  >  問答  >  主體

Laravel 9和Livewire驗證:除非更新,否則唯一性驗證

以下驗證在建立新記錄時有效,但在更新記錄時,partner_codeseedgens_code 會陷入 unique 驗證中。如果未更改,如何允許使用相同的值更新記錄,但在值發生更改時仍驗證唯一性?

$this->validate(
    [
        'partner_code' => 'required|unique:varieties',
        'seedgens_code' => 'required|unique:varieties',
    ],
    [
        'partner_code.required' => 'Please add a partner code.',
        'partner_code.unique' => 'Partner code must be unique.',
        'seedgens_code.required' => 'Please add a unique partner code.',
        'seedgens_code.unique' => 'SeedGens code must be unique.',
    ],
);


#
P粉691461301P粉691461301467 天前758

全部回覆(2)我來回復

  • P粉821231319

    P粉8212313192023-11-10 14:03:24

    (1) protected $rules=[
        'partner_code' => ['required', Rule::unique('varieties')->ignore($id)]
        ....
    ]
    
    (2) protected function rules(){
        'partner_code' => ['required', Rule::unique('varieties')->ignore($id)]
        ...
    }

    我將規則加入到 (1) 中不起作用 我將規則添加到(2)中正在工作! ! !

    回覆
    0
  • P粉738676186

    P粉7386761862023-11-10 12:56:55

    'partner_code' => 'required|unique:varieties,' . $id

    'partner_code' => ['required', Rule::unique('varieties')->ignore($id)]

    其中 $id 是您要忽略的 ID。

    https://laravel.com/docs/9.x/validation #規則唯一

    #

    回覆
    0
  • 取消回覆