Основы
Компонент 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)