Mahmoud Al-HabashOpen to new projects
  • WorkWork
  • ServicesServices
  • LabLab
  • WritingWriting
  • ContactContact
Amman--:--عربي
Writing/Laravel

Laravel Enums: Type-Safe Constants

Use PHP 8.1 enums with Laravel for type-safe constants.

16 January 20261 min readLaravelاقرأ بالعربية

On this page

  1. Define Enum
  2. Cast in Model
  3. Use in Queries
  4. Validation

Type-safe enums in Laravel:

Define Enum

enum OrderStatus: string
{
    case Pending = 'pending';
    case Processing = 'processing';
    case Completed = 'completed';
    case Cancelled = 'cancelled';
}

Cast in Model

php
protected $casts = [
    'status' => OrderStatus::class,
];

Use in Queries

php
Order::where('status', OrderStatus::Pending)->get();

Validation

php
'status' => ['required', new Enum(OrderStatus::class)]
All articles

Keep reading

  • Laravel Action Classes Pattern16 January 20261 min read
  • Laravel Action Classes: Single Responsibility16 January 20261 min read
  • Laravel API Rate Limiting16 January 20261 min read