• #laravel
  • #feature
  • #routes

Laravel 9.42.0 Singleton Route Resource

El día de ayer se liberó la versión 9.42.0 de laravel y una de las características nuevas son las Single Route Resource, que son similares a las Resource Controller, con la diferencia que solo nos crea las rutas para Ver (GET), Editar (GET) y Actualizar (PUT|PATCH)

Caso de uso

Primero nos preguntamos, ¿En que casos podemos usar esta nueva característica?

En nuestra aplicación, cuando se registre un usuario, debemos crearle un perfil, donde se almacenarán algunos datos extra (teléfono, dirección, fecha de nacimiento, etc), pero en este caso solo tendremos un perfil por usuario, con una relación de uno a uno (un usuario puede tener un solo perfil, y un perfil solo puede pertenecer a un usuario).

Teniendo esto en cuenta, no necesitaremos las rutas de listar perfiles, tampoco la de crear un nuevo perfil por que solo puede existir una por usuario y tampoco la ruta de eliminar un perfil

Implementación de Singleton Route Resource

¿Y cómo podemos usarlo?

web.php
Route::singleton('profile', ProfileController::class);
/*
Esto genera las siguientes rutas:
GET /profile
GET /profile/edit
PUT/PATCH /profile
*/

Ahora podemos tener la ruta para el cliente example.com/profile, donde mostrar los datos del perfil del usuario, si queremos actualizar los datos, dirigimos al usuario a example.com/profile/edit y para guardar los datos, agregamos al action del formulario la ruta example.com/profile con los métodos PUT o PATCH

Puedes ver más en la documentación a cerca de los Single Route Resource

Te puede interesar: UUID's en laravel