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

Entradas más populares de este blog

USO DE DBLINK EN FUNCIONES DE POSTGRESQL(PARTE UNO)

PASAR UN ARRAY COMO PARAMETRO A UNA FUNCION DE POSTGRESQL (PARTE UNO)

Codeigniter solucion de :A PHP Error was encountered