Создание
Иногда вам нужно вернуть только часть шаблона в вашем HTTP-ответе. Для этого вы можете использовать Blade Fragments. Декоратор Fragment позволяет создавать соответствующие блоки.
Вы можете создать Fragment, используя статический метод make().
make(array $fields = [])make(array $fields = [])
Метод name() устанавливает имя для фрагмента.
use MoonShine\Decorations\Fragment;use MoonShine\Fields\Text;//...public function components(): array{return [Fragment::make([Text::make('Имя', 'first_name')])->name('fragment-name')];}//...use MoonShine\Decorations\Fragment;use MoonShine\Fields\Text;//...public function components(): array{return [Fragment::make([Text::make('Имя', 'first_name')])->name('fragment-name')];}//...
Асинхронное событие
Вы можете включить область в Fragment и установить событие на эту область, вызывая которое можно будет обновить фрагмент
Fragment::make($fields)->name('fragment-name'),Fragment::make($fields)->name('fragment-name'),
И в качестве примера давайте вызовем событие для успешной отправки формы
FormBuilder::make()->async(asyncEvents: 'fragment-updated-fragment-name')FormBuilder::make()->async(asyncEvents: 'fragment-updated-fragment-name')
Вы также можете передать дополнительные параметры с запросом через массив
Fragment::make($fields)->name('fragment-name')->updateAsync(['resourceItem' => request('resourceItem')]),Fragment::make($fields)->name('fragment-name')->updateAsync(['resourceItem' => request('resourceItem')]),
Передача параметров
Метод withParams() позволяет передавать значения полей с запросом, используя селекторы элементов.
Fragment::make($fields)->withParams(['start_date' => '#start_date','end_date' => '#end_date'])->name('fragment-name'),Fragment::make($fields)->withParams(['start_date' => '#start_date','end_date' => '#end_date'])->name('fragment-name'),