`exclude()` - прибираємо поля з валідованих даних
У формі є CSRF-токен та допоміжні поля. Ви не хочете, щоб вони потрапили у validated().
exclude_if, exclude_unless прибирають поля умовно.
Коли корисно:
- Прибрати UI-only поля
- Виключити поля залежно від ролі
- Не логувати чутливі поля
- Тримати валідовані дані “чистими”
Доступні правила:
exclude— завжди прибираєexclude_if— прибирає, якщо умова істиннаexclude_unless— прибирає, якщо умова хибнаexclude_with— прибирає, якщо інше поле присутнє
Порада: краще за ручний unset() після валідації.
public function rules()
{
return [
'name' => 'required',
'admin_notes' => 'exclude', // не потрапить у validated()
'is_admin' => 'exclude_unless:user.role,admin',
'card_number' => 'exclude_if:payment_method,cash',
'paypal_email' => 'exclude_if:payment_method,card',
];
}