Компоненты

FieldsGroup

Основы

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