Enums en Laravel para Insert, Update y Where de forma nativa

Fecha de publicación: noviembre 20, 2021

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on google
Google+
Share on whatsapp
WhatsApp
Share on email
Email

Gracias a PHP 8.1 los Enums en Laravel para operaciones Insert, Update y Where ya son soportados de forma nativa desde la versión 8.7.0 del framework. Esto es así desde hace pocos días gracias a este PR.

Yo desde hace mucho tiempo utilizo un paquete para Laravel que cubre todas las necesidades cuando trabajamos con Laravel y necesitamos gestionar Enumerables. Una vez se publique la versión 8.1 de PHP a partir del 25 de noviembre de 2021 voy a empezar a utilizar los Enums en Laravel de forma nativa, pero mientras tanto, veamos que podremos hacer con esta maravillosa novedad de Laravel y PHP.

Crear Enums en PHP 8.1

Crear un Enum en PHP 8.1 es muy sencillo.

Si lo deseamos, podemos definir el tipo de dato, aunque actualmente sólo están soportados los tipos int|string.

Obtener todos los valores de un Enum

Si deseamos obtener todos los valores que contiene un Enum, podemos hacerlo gracias al método cases.

Utilizar Enums en Migraciones Laravel

Actualmente no está soportado de forma nativa en Laravel, pero es fácil. Nosotros normalmente utilizamos Enums para definir tipos de datos, roles, post type y similares. Ya que es una tarea repetitiva, lo mejor sería reutilizar dicha tarea en todos nuestros Enums ¡Gracias por existir Traits!

El Trait BaseEnum cumple con nuestras necesidades, retornará un array de valores ideal para nuestras migraciones, ahora sólo debemos aplicarlo a nuestros Enums.

Migración con Enums Nativos en Laravel

Vamos a crear una migración para una tabla de Posts utilizando nuestro Enum PostType y su método forMigration.

Si revisas tu esquema, deberías ver algo como lo siguiente:

Enums nativos Laravel

Crear registros con Enums en Laravel

Crear nuevos Posts utilizando nuestro Enum PostType es tan sencillo como sigue:

Filtrar Posts por Enum en Laravel

De la misma forma, filtrar por la columna post_type es bien sencillo gracias a nuestro Enum:

¿Quieres acceder a más de 150 cursos de PHP y JavaScript?

¿Quieres ganar tiempo en tus desarrollos con nuestros proyectos descargables?


Vue, Laravel, Inertia, NodeJS, WordPress, Serverless, React Native, Amazon Web Services y mucho más

Hazte Premium y consigue acceso completo
Cursosdesarrolloweb ©. Todos los derechos reservados.

Login

Create an Account Back to login/register