В Laravel 13.4.0 добавлен глобальный строгий режим для FormRequest, новые методы для работы с очередями и поддержка атрибута #[Delay] в компонентах. Также обновление включает исправления валидации, поддержку overflow в Carbon и багфиксы.
Строгий режим FormRequest
Добавлен режим, при котором FormRequest отклоняет любые входные поля, не объявленные в методе rules(). Ранее Laravel валидировал только известные поля, игнорируя остальные, что позволяло отправлять лишние параметры без ошибок.
Глобальное включение выполняется в AppServiceProvider:
use Illuminate\Foundation\Http\FormRequest;
public function boot(): void
{
FormRequest::failOnUnknownFields(! app()->isProduction());
}Режим можно включать точечно через атрибут:
use Illuminate\Foundation\Http\Attributes\FailOnUnknownFields;
#[FailOnUnknownFields]
class StoreUserRequest extends FormRequest
{
public function rules(): array
{
return [
'name' => 'required|string',
'email' => 'required|email',
];
}
}Если включен строгий режим, передача, например, поля is_admin вместе с name и email приведет к ошибке валидации.
Для отдельных классов можно отключить поведение:
#[FailOnUnknownFields(false)]
class WebhookRequest extends FormRequest
{
// Разрешает неизвестные поля даже при глобальном строгом режиме
}По умолчанию режим отключен, поэтому поведение не меняется без явного включения.
Инспекция задач очереди
Добавлены новые методы фасада очередей, позволяющие проверять состояние задач: ожидающие, отложенные и зарезервированные. Это упрощает отладку и мониторинг очередей на уровне приложения.
Поддержка #[Delay]
Атрибут #[Delay] теперь работает не только в заданиях, но и в Bus Dispatcher и NotificationSender. Это позволяет задавать задержку выполнения декларативно в разных частях системы очередей.
Обновления Carbon
Добавлена поддержка параметра overflow для операций plus и minus. Это позволяет контролировать поведение при переполнении дат.
Исправления валидации
Исправлены ошибки, связанные с обработкой null значений и типами данных в правилах валидации.