Heim > Fragen und Antworten > Hauptteil
Die folgende Validierung funktioniert beim Erstellen eines neuen Datensatzes, aber beim Aktualisieren eines Datensatzes führt partner_code
和 seedgens_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粉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)中正在工作!!!
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 #规则唯一