Agregar y modificar un campo en el form request validation de laravel 8
Lavarel es uno de los framework de backen mas usado en el lenguaje PHP, algo que ya saben si están buscando solución a este tipo de problemas.
Me encontré con este inconveniente y realicé las consultas necesarias para solucinarlos, espero que les pueda servir y ahorrarles tiempo.
Para ponerlos en contexto, tengo un formulario para registrar usuarios create.blade.php con los siguientes campos : dni, name, lastname, lastname2, email, password, status.
En mi controlador UserController.php en la función store escribí la lógica para guardar un usuario.
Existe un método create de eloquent el cual recibe un array con clave y valor para guardar un usuario con una sola declaración de PHP. Antes de usar el metodo create, debes verificar si tienes llenas las propiedades fillable o guarded en el modelo.
Modelo User
Este se crea en la carpeta app/http/request
Archivo SaveUserRequest.php
Encontramos dos funciones authorize() y rules().
La función authorize es como bien menciona la palabra , para verificación de permisos para el usuario que desee realizar la acción, si tienes la logica en otro lugar debes colocarle true
En la función rules, colocamos un array con todas las reglas de validación que necesitemos:
Ahora para que funcione en nuestro controlador UserController.php , solo debemos llamarlo en nuestro método como un Request, y ya realizará la validación.
Existe otro novedad, que al ver el nombre del campo este en el mensaje de erros , este se muestra en ingles tal cual como manejo los campos en la base de datos.
Otras de las novedades es que se tiene que convertir en boolean el valor recibido de status, para ello agregue un método dentro de SaveUserRequest prepareForValidation el cual se aplica antes de aplicar las reglas de validación. Se utilizo el método merge que es una funcion de Request, la cual va a permitir pasar un array y cambiar o modificar le valor del campo status usando un función Helper filled para convertir un valor en boolean.
Para concluir con la lógica del método store para el registrar usuarios, se necesita agregar la contraseña al usuario, para lo cual definí que la clave inicial se formará por la unión del campo dni y el campo lastname. Para lo cual utilicé un metodo del helper para agregar datos a un array y objetos Arr::add . Finalmente el controlador terminó de la siguiente manera.
Si tienes alguna consulta o recomendación, hazlo en la sección de comentario.
Comentarios
Publicar un comentario