Manejo simplificado de Enums con valores predeterminados en Laravel

  • Publicado el 20 junio, 2025
  • Palabras: 96

Laravel simplifica la recuperación de enums de las solicitudes con un método enum() mejorado que admite valores predeterminados, lo que hace que su código sea más limpio y expresivo.

Manejo simplificado de Enums con valores predeterminados en Laravel

Al trabajar con enums en los datos de solicitud, a menudo es necesario proporcionar valores de respaldo cuando el parámetro del enum falta o no es válido. El método enum() mejorado ahora acepta un tercer parámetro para los valores predeterminados, lo que elimina la necesidad de lógica adicional de fusión de valores nulos. Veamos cómo funciona:

 

// Antes
$chartType = request()->enum('chart_type', ChartTypeEnum::class) ?: ChartTypeEnum::Bar;

// Ahora
$chartType = request()->enum('chart_type', ChartTypeEnum::class, ChartTypeEnum::Bar);

 

#Ejemplo práctico

A continuación se explica cómo puedes utilizar esto en un panel de control:

 

class DashboardController extends Controller
{
    public function analytics(Request $request)
    {
        $params = [
            'chart_type' => $request->enum('chart_type', ChartType::class, ChartType::Line),
            'period' => $request->enum('period', ReportPeriod::class, ReportPeriod::Monthly),
            'status' => $request->enum('status', OrderStatus::class, OrderStatus::All),
            'sort_by' => $request->enum('sort_by', SortOption::class, SortOption::CreatedAt)
        ];

        return $this->generateReport($params);
    }

    public function userPreferences(Request $request)
    {
        $preferences = [
            'theme' => $request->enum('theme', Theme::class, Theme::Light),
            'language' => $request->enum('language', Language::class, Language::English),
            'timezone' => $request->enum('timezone', Timezone::class, Timezone::UTC),
            'notification_frequency' => $request->enum(
                'notification_frequency', 
                NotificationFrequency::class, 
                NotificationFrequency::Daily
            )
        ];

        $request->user()->updatePreferences($preferences);
    }
}

 

Esta mejora hace que el manejo de enums sea más conciso y legible, especialmente cuando se trabaja con múltiples parámetros de enums que necesitan valores predeterminados razonables.

Antonio Jenaro

Desarrollador backend especializado en PHP y Laravel, con sede en Santander, Cantabria. Más de 15 años de experiencia en el desarrollo de aplicaciones web a medida y en la modernización de código heredado.

Archivado en:

Fuente: Harris Raftopoulos

Artículos relacionados

Dominar el manejo de solicitudes con enums en Laravel
173

Dominar el manejo de solicitudes con enums en Laravel

Transforma arrays en instancias de Enum con el método mapInto de Laravel
821

Transforma arrays en instancias de Enum con el método mapInto de Laravel

Inicia la conversación

Hazte miembro de Antonio Jenaro para comenzar a comentar.

Regístrate ahora

¿Ya estás registrado? Inicia sesión