Heim  >  Fragen und Antworten  >  Hauptteil

Laravel 9- und Livewire-Validierung: Eindeutigkeitsvalidierung, sofern nicht aktualisiert

Die folgende Validierung funktioniert beim Erstellen eines neuen Datensatzes, aber beim Aktualisieren eines Datensatzes führt partner_codeseedgens_code 会陷入 unique eine Validierung durch. Wie kann ich zulassen, dass ein Datensatz mit demselben Wert aktualisiert wird, wenn er sich nicht geändert hat, und trotzdem die Eindeutigkeit überprüfen, wenn sich der Wert ändert?

$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粉691461301368 Tage vor661

Antworte allen(2)Ich werde antworten

  • 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)中正在工作!!!

    Antwort
    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 #规则唯一

    Antwort
    0
  • StornierenAntwort