Да, в Laravel есть возможность добавить кастомное значение в $request->validated()
на этапе валидации. Для этого можно использовать метод extend
в классе правил валидации.
Первым шагом нужно создать правила валидации, добавив новое правило через метод extend
в методе boot
файла AppServiceProvider.php
. Например, вам нужно добавить кастомное значение custom_value
:
use IlluminateSupportFacadesValidator; public function boot() { Validator::extend('custom_rule', function ($attribute, $value, $parameters, $validator) { // Проверка на основе пользовательской логики }); // ... }
Затем вы можете использовать новое правило в вашей форме валидации. Например, если вы используете правило custom_rule
для поля custom_field
, то ваша форма валидации может выглядеть так:
public function rules() { return [ 'custom_field' => 'required|custom_rule', // ... ]; }
Теперь, при валидации формы, вы можете добавить пользовательские значения, используя метод after
класса Validator
в методе withValidator
вашего контроллера или другого места, где вы выполняете валидацию.
use IlluminateHttpRequest; use IlluminateSupportFacadesValidator; public function store(Request $request) { $validator = Validator::make($request->all(), [ 'custom_field' => 'required|custom_rule', // ... ]); $validator->after(function ($validator) { $validator->addData([ 'custom_value' => 'my_custom_value' ]); }); if ($validator->fails()) { // Обработка ошибок валидации } // ... }
Теперь в вашем массиве $request->validated()
будет присутствовать новое кастомное значение custom_value
. Вы сможете обратиться к нему как $request->custom_value
в других частях вашего кода.