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