“Laravel: Walidacja unikalna w aktualizacji” Kod odpowiedzi

Unikalna walidacja na aktualizacji laravel

public function rules()
{
  return [
      'email' => 'required|email|unique:users,email,'.$this->user->id,
  ];
}
Fine Fly

Laravel: Walidacja unikalna w aktualizacji

Just a side note, most answers to this question talk about email_address while in Laravel's inbuilt auth system, the email field name is just email. Here is an example how you can validate a unique field, i.e. an email on the update:

In a Form Request, you do like this:

public function rules()
{
  return [
      'email' => 'required|email|unique:users,email,'.$this->user->id,
  ];
}
Or if you are validating your data in a controller directly:

public function update(Request $request, User $user)
{
  $request->validate([
      'email' => 'required|email|unique:users,email,'.$user->id,
  ]);
}
Update: If you are updating the signed in user and aren't injecting the User model into your route, you may encounter undefined property when accessing id on $this->user. In that case, use:

public function rules()
    {
      return [
          'email' => 'required|email|unique:users,email,'.$this->user()->id,
      ];
    }
A more elegant way since Laravel 5.7 is:

public function rules()
{
    return [
        'email' => ['required', 'email', \Illuminate\Validation\Rule::unique('users')->ignore($this->user()->id)]
    ];
}
shafeeque

Odpowiedzi podobne do “Laravel: Walidacja unikalna w aktualizacji”

Pytania podobne do “Laravel: Walidacja unikalna w aktualizacji”

Więcej pokrewnych odpowiedzi na “Laravel: Walidacja unikalna w aktualizacji” w PHP

Przeglądaj popularne odpowiedzi na kod według języka

Przeglądaj inne języki kodu