Cómo utilizar form requests y policies en Laravel

Form Requests y Policies: Cómo utilizarlos en Laravel

En el desarrollo de aplicaciones web, la validación de datos es una tarea crítica que debe ser llevada a cabo correctamente para preservar la seguridad de los datos. Por ello, Laravel proporciona herramientas poderosas para llevar a cabo esta tarea de forma eficiente y efectiva. En este artículo, discutiremos cómo utilizar Form Requests y Policies en Laravel para realizar validación de datos y autorización de usuarios. 

Qué son los Form Requests 

Laravel ofrece una forma sencilla y eficiente de validar datos mediante el uso de Form Requests. Ahora bien, ¿qué son los Form Request en Laravel? Se trata de clases que se utilizan para validar los datos que se reciben de un formulario web antes de que se procesen en el controlador correspondiente. 

Además, se pueden utilizar para validar cualquier tipo de dato, desde cadenas simples hasta archivos cargados.

Cómo crear un Form Request en Laravel 

Para crear una Form Request en Laravel, se debe utilizar el comando artisan make:request, seguido del nombre de la Form Request que se desea crear. Por ejemplo, para crear una Form Request llamada "CreateUserRequest", se debe ejecutar el siguiente comando: 

Form request en Laravel

Una vez que se ha creado la Form Request, se pueden definir las reglas de validación en el método rules(). Continuando con el ejemplo, si se desea validar que el campo "email" sea obligatorio y sea una dirección de correo electrónico válida, se puede definir la siguiente regla: 

Form Request en Laravel

La validación se realiza automáticamente antes de que se procese el formulario en el controlador correspondiente. Por otro lado, si la validación falla, Laravel automáticamente redirige al usuario de vuelta al formulario con los errores de validación. 

Qué son las Policies en Laravel 

Además de la validación de datos, la autorización de usuarios es otro aspecto crítico que se debe implementar correctamente en una aplicación web. Laravel ofrece un método eficaz, y sin ningún tipo de complejidad, para implementar la autorización de usuarios mediante el uso de Policies

Las Policies son clases que definen las reglas de autorización para un modelo específico. Se suelen usar para definir quién tiene acceso a qué acciones en un modelo determinado. Por ejemplo, una Policy para el modelo de Usuario podría definir que sólo los usuarios administradores tienen acceso a la acción de eliminar un usuario. 

Cómo crear Policies en Laravel correctamente 

Si se desea crear una Policy en Laravel, debe hacerse a través del comando artisan make:policy, seguido del nombre de la Policy y el modelo asociado. Continuando con los ejemplos explicativos, si el objetivo fuera crear una Policy llamada "UserPolicy" para el modelo de Usuario, se debe ejecutar el siguiente comando: 

Policy en Laravel

Tras la creación de la Policy, hay que definir las reglas de autorización en los métodos correspondientes. En el caso de querer definir que sólo los usuarios administradores tienen acceso a la acción de eliminar un usuario, se puede implementar el siguiente método en la Policy

Policy en Laravel

En este ejemplo, el primer parámetro ($user) es el usuario actualmente autenticado y el segundo parámetro ($model) es el modelo de usuario que se está intentando eliminar. La regla de autorización indica que sólo los usuarios administradores tienen acceso a esta acción. 

Para utilizar la Policy en un controlador, se debe agregar el método authorize() en el controlador correspondiente y pasar como parámetros el nombre de la Policy y el modelo asociado. 

En el caso de que se desee utilizar la Policy UserPolicy para el modelo de Usuario en un controlador llamado UserController, se puede agregar el siguiente método authorize() en el controlador: 

Policy en Laravel

Aquí se está utilizando el método authorizeResource() para vincular automáticamente las rutas del controlador con la Policy correspondiente. 

En definitiva, Laravel ofrece una serie de herramientas de gran utilidad que permiten validar datos y autorizar usuarios de forma eficiente y efectiva. 

Es importante utilizar adecuadamente estas herramientas para garantizar la seguridad y la integridad de los datos en una aplicación web. Además, es fundamental aplicar un enfoque de seguridad en capas para garantizar la protección de los datos sensibles. 

Esperamos que este artículo haya sido útil para comprender cómo utilizar Form Requests y Policies en Laravel para realizar validación de datos y autorización de usuarios.

Suscríbete a nuestra newsletter

Artículos relacionados

Beneficios de Laravel para el desarrollo de software
Desarrollo

Cuáles son las ventajas de utilizar Laravel

En este artículo explicamos cuáles son las ventajas y beneficios más relevantes de Laravel para el desarrollo de softwar...

Beneficios del desarrollo de software a medida para empresas
Desarrollo

Qué beneficios ofrece el desarrollo de software a medida

Explicamos cómo el desarrollo de software a medida contribuye al crecimiento de una empresa y qué beneficios ofrece....

Cómo elegir una empresa de desarrollo de software
Desarrollo

Cómo elegir una empresa de desarrollo de software

Explicamos cuáles son los consejos que se deben tener en cuenta a la hora de escoger una empresa especializada en desarr...

Cómo elegir entre desarrollo a medida o plantillas prediseñadas
Desarrollo

Desarrollo a medida vs. Plantillas: ¿Qué opción es mejor?

En ciertas ocasiones surge la duda de si es mejor optar por un desarrollo a medida o utilizar plantillas prediseñadas. D...