Основы
Компонент FieldsGroup
создан для быстрой группировки набора полей, наполнения их данными и смены их состояний.
make(iterable $components = [])
$components
- набор FieldContract
.
use MoonShine\UI\Components\FieldsGroup; FieldsGroup::make([ Text::make('Title'), Email::make('Email'),]);
Наполнение данными
Чтобы наполнить все поля данными, воспользуйтесь методом fill()
.
fill( array $raw = [], ?DataWrapperContract $casted = null, int $index = 0,)
FieldsGroup::make($fields) ->fill($data)
Режим preview
Вы можете переключить все поля в наборе в режим "preview" с помощью метода previewMode()
.
FieldsGroup::make($fields) ->previewMode()
Режим без обверток
Вы можете переключить все поля в наборе в режим без обверток с помощью метода withoutWrappers()
.
Обвертки - поля которые реализуют интерфейс FieldsWrapperContract
, например StackFields
.
Тем самым при использовании метода withoutWrappers
из поля-обвертки будут извлечены все вложенные поля,
а само поле-обвертка не будет участвовать в итоговом наборе.
FieldsGroup::make($fields) ->withoutWrappers()
Массовое изменение полей
Все выше описанные методы под капотом используют метод mapFields()
, который позволяет пройтись по всем элементам набора и изменить их состояние.
FieldsGroup::make($fields) ->mapFields( fn(FieldContract $field, int $index): FieldContract => $field )