Laravel 9- und Livewire-Validierung: Eindeutigkeitsvalidierung, sofern nicht aktualisiert
P粉691461301
P粉691461301 2023-11-09 17:41:05
0
2
699

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粉691461301
P粉691461301

Antworte allen(2)
P粉821231319
(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)中正在工作!!!

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

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

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

https://laravel.com/docs/9.x/validation #规则唯一

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage