Действия
В полях
Действия, привязанные к отдельным полям формы
Действия можно прикреплять к отдельным полям на формах создания и редактирования. Они выполняют операции с данными поля или других полей формы:
- Генерация slug из заголовка или сложного пароля
- Валидация email через внешний сервис
- Расчёт значения на основе других полей
Пример
Действие, вычисляющее возраст по дате рождения и записывающее результат в поле «Bio».
Подключение действия к полю:
DateTime::make('birthday', 'Birthday')
->nullable()
->actions([
Action::make('Calculate age')
->icon('tabler-sparkles')
->confirmed()
->action(static function (
FrameRequest $request,
array $state,
): ActionResult {
$birthday = data_get($state, 'birthday');
if (!$birthday) {
abort(422, __('Birthday is required'));
}
$age = Carbon::parse($birthday)->age;
return Action::set([
'bio' => __('I am :age years old', ['age' => $age]),
]);
}),
])
->format('d.m.Y');
Поле, которое обновляется действием:
Textarea::make('bio', 'Bio')
->condition('$birthday')
->rules([
Rule::requiredIf(fn() => request()->date('birthday')),
])
->help('Write some useful information'),
