Laravel 9: ¡Enumeraciones!
¡Y si! Finalmente, tenemos soporte oficial para Enumeraciones en php 8.1, aunque podríamos agregarlos al marco de Laravel usando paquetes de terceros como spatie/enums.
Pero, ¿qué son las enumeraciones en php?
Son solo objetos singleton y la sintaxis para definirlos es la siguiente:
Con mucho gusto, podemos hacer muchas cosas con Laravel Enums y en este artículo cubriremos algunos de los usos más importantes.
1. Enlaces de ruta con enumeraciones
Laravel 9.x tiene la capacidad de escribir sugerencias en nuestra ruta… ¡Piénselo como un enlace de modelo de ruta pero en lugar de modelo tenemos enumeraciones! Veamos un ejemplo:
Y en web.php:
Con estos códigos, Laravel reconocerá automáticamente el tipo de categoría y, si no pasamos ninguno de los tipos predefinidos, ¡devolverá una respuesta HTTP 404!
2. Enumeraciones y migraciones
Podemos usar el método enum()
como el siguiente ejemplo para crear una columna con el tipo de enumeración, solo tenga cuidado al elegir un nombre propio porque actualmente no se admite el cambio de nombre de una columna de enum
.
3. Conversión de atributos de enumeración
Ahora, nuestro querido ORM Eloquent, nos permitirá convertir atributos en enumeraciones de PHP. Solo necesitamos usar la matriz de propiedades $casts
en el modelo deseado:
Y podemos acceder al atributo directamente:
4. Métodos de enumeración
De acuerdo con los documentos de Laravel, casi todos los métodos conocidos que usamos en las colecciones también están disponibles en los me gusta de las enumeraciones:
Eso es todo… ¿Alguna pregunta?