La validation suivante fonctionne lors de la création d'un nouvel enregistrement, mais lors de la mise à jour d'un enregistrement,partner_code和seedgens_code会陷入uniqueest en cours de validation. Comment puis-je autoriser la mise à jour d'un enregistrement avec la même valeur s'il n'a pas changé, tout en vérifiant son unicité lorsque la valeur change ?
$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.', ], );
(1) protected $rules=[ 'partner_code' => ['required', Rule::unique('varieties')->ignore($id)] .... ] (2) protected function rules(){ 'partner_code' => ['required', Rule::unique('varieties')->ignore($id)] ... }J'ai ajouté la règle à (1) et ça n'a pas fonctionné J'ai ajouté la règle à (2) et ça marche ! ! !
ou
'partner_code' => ['required', Rule::unique('varieties')->ignore($id)]où
$idest l'identifiant que vous souhaitez ignorer.https://laravel.com/docs/9.x/validation #rules uniques