Tips
19 жовтня 2026
Валідація Enum - типобезпечні значення у формах
Статус може бути pending, active, inactive. Валідувати рядками?
PHP 8.1 Enums + Laravel validation = типобезпека.
Rule::enum() валідує значення по Enum case’ах автоматично.
Переваги:
- Змінили Enum — валідація підлаштувалась
- Жодних хардкод-рядків
- Автодоповнення в IDE
- Зручний рефакторинг
Порада: використовуйте backed enums (string/int) для збереження в БД.
enum OrderStatus: string
{
case Pending = 'pending';
case Processing = 'processing';
case Completed = 'completed';
}
public function rules()
{
return [
'status' => ['required', Rule::enum(OrderStatus::class)],
];
}
// Каст у моделі - і жодних рядкових статусів
protected $casts = ['status' => OrderStatus::class];