regla unique en form request validation en lavarel 8
Estuve realizando el formulario para actualizar usuarios, para las validaciones usé un form request validation UpdateUserRequest.php el cual quedo de la siguiente manera.
La función authorize debe estar en true para que se puedan ejecutar las demás acciones.
public function authorize()
{
return true;
}
Se establecieron las reglas de validación. se tienen dos campos con atributos únicos los cuales son: dni, email para lo cual se va a usar el metodo unique. La novedad es que cuando se se envía el formulario para validar, este detecta el dni y el email como valores ya existentes. Por ende se necesita que se realice la validación con una excepción ignorando los campos dni y email con los mismos valores pertenecientes al mismo usuario.
public function rules()
{
return [
'dni' => 'bail|required|numeric|digits:10|unique:App\Models\User,dni,exception,'.$this->get('id'),
'name' => 'bail|required',
'lastname' => 'bail|required',
'lastname2' => 'bail|required',
'email' => ['bail',
'required',
Rule::unique('users')->ignore($this->route('user'))],
'status' => 'bail|nullable'
];
}
Finalmente para poder obtener el id se utilizó el método route, ya en la ruta se pasa una instancia del modelo User
Comentarios
Publicar un comentario