recherche

Maison  >  Questions et réponses  >  le corps du texte

Validation Laravel 9 et Livewire : validation d'unicité sauf mise à jour

La validation suivante fonctionne lors de la création d'un nouvel enregistrement, mais lors de la mise à jour d'un enregistrement, partner_codeseedgens_code 会陷入 unique est 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.',
    ],
);


P粉691461301P粉691461301382 Il y a quelques jours673

répondre à tous(2)je répondrai

  • 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)]
        ...
    }

    J'ai ajouté la règle à (1) et ça n'a pas fonctionné J'ai ajouté la règle à (2) et ça marche ! ! !

    répondre
    0
  • P粉738676186

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

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

    ou

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

    $id est l'identifiant que vous souhaitez ignorer.

    https://laravel.com/docs/9.x/validation #rules uniques

    répondre
    0
  • Annulerrépondre