Создание
Поле Td предназначено для изменения отображения ячейки таблицы в режиме preview
.
make(Closure|string $label, ?Closure $fields = null)
$label
- название столбца$fields
- замыкание, возвращающее массив полей
use MoonShine\Fields\Td;use MoonShine\Fields\Text; //... public function indexFields(): array{ return [ Td::make('Column', fn () => [ Text::make('Title'), ]), ];} //...
Поле Td не отображается в формах, оно предназначено только для режима preview
!
Замыкание может принимать текущий элемент в качестве параметра.
use MoonShine\ActionButtons\ActionButton;use MoonShine\Decorations\Flex;use MoonShine\Fields\Switcher;use MoonShine\Fields\Td;use MoonShine\Fields\Text; //... public function indexFields(): array{ return [ Td::make('Column', function (Article $v) { if($v->active) { return [ Text::make('Title'), ]; } return [ Flex::make([ ActionButton::make('Click me', $this->detailPageUrl($v)), Text::make('Title'), Switcher::make('Active'), ]) ]; }), ];} //...
Поля
Вы также можете указать, какие поля будут отображаться в ячейке, используя метод fields()
.
fields(Fields|Closure|array $fields)
use MoonShine\Fields\Td;use MoonShine\Fields\Text; //... public function indexFields(): array{ return [ Td::make('Column') ->fields([ Text::make('Title') ]), ];} //...
Метки
Метод withLabels()
позволяет отображать Label для полей в ячейке.
use MoonShine\Fields\Td;use MoonShine\Fields\Text; //... public function indexFields(): array{ return [ Td::make('Column', fn () => [ Text::make('Title'), ]) ->withLabels(), ];} //...
Атрибуты
Полю Td можно задать дополнительные атрибуты с помощью метода tdAttributes()
.
use MoonShine\Fields\Td;use MoonShine\Fields\Text;
use MoonShine\Fields\Td;use MoonShine\Fields\Text; //... public function indexFields(): array{ return [ Td::make('Column') ->fields([ Text::make('Title') ]) ->tdAttributes(fn (Article $data, ComponentAttributeBag $attr) => $data->getKey() === 2 ? $attr->merge([ 'style' => 'background: lightgray' ]) : $attr), ];} //...