Поле Json включает все базовые методы.
Json имеет несколько методов для установки структуры поля:
keyValue()
, onlyValue()
и fields()
.
В базе данных поле должно быть текстового или json типа. Также требуется cast eloquent модели в массив, json или коллекцию.
Самый простой способ работы с полем Json - использовать метод keyValue()
.
Результатом будет простой json {key: value}
.
keyValue(
string $key = 'Key',
string $value = 'Value'
)
keyValue(
string $key = 'Key',
string $value = 'Value'
)
keyValue(
string $key = 'Key',
string $value = 'Value'
)
keyValue(
string $key = 'Key',
string $value = 'Value'
)
keyValue(
string $key = 'Key',
string $value = 'Value'
)
use MoonShine\Fields\Json;
public function fields(): array
{
return [
Json::make('Data')
->keyValue()
];
}
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->keyValue()
];
}
//...
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->keyValue()
];
}
//...
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->keyValue()
];
}
//...
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->keyValue()
];
}
//...

По умолчанию ключи и значения являются полями Text, но вы можете использовать другие поля для примитивных данных.
use MoonShine\Fields\Json;
use MoonShine\Fields\Select;
public function fields(): array
{
return [
Json::make('Label', 'data')->keyValue(
keyField: Select::make('Key')->options(['vk' => 'VK', 'email' => 'E-mail']),
valueField: Select::make('Value')->options(['1' => '1', '2' => '2']),
),
];
}
use MoonShine\Fields\Json;
use MoonShine\Fields\Select;
//...
public function fields(): array
{
return [
Json::make('Label', 'data')->keyValue(
keyField: Select::make('Key')->options(['vk' => 'VK', 'email' => 'E-mail']),
valueField: Select::make('Value')->options(['1' => '1', '2' => '2']),
),
];
}
//...
use MoonShine\Fields\Json;
use MoonShine\Fields\Select;
//...
public function fields(): array
{
return [
Json::make('Label', 'data')->keyValue(
keyField: Select::make('Key')->options(['vk' => 'VK', 'email' => 'E-mail']),
valueField: Select::make('Value')->options(['1' => '1', '2' => '2']),
),
];
}
//...
use MoonShine\Fields\Json;
use MoonShine\Fields\Select;
//...
public function fields(): array
{
return [
Json::make('Label', 'data')->keyValue(
keyField: Select::make('Key')->options(['vk' => 'VK', 'email' => 'E-mail']),
valueField: Select::make('Value')->options(['1' => '1', '2' => '2']),
),
];
}
//...
use MoonShine\Fields\Json;
use MoonShine\Fields\Select;
//...
public function fields(): array
{
return [
Json::make('Label', 'data')->keyValue(
keyField: Select::make('Key')->options(['vk' => 'VK', 'email' => 'E-mail']),
valueField: Select::make('Value')->options(['1' => '1', '2' => '2']),
),
];
}
//...
Для более продвинутого использования используйте метод fields()
и передайте необходимый набор полей.
В результате будет сгенерирован следующий json:
[{title: 'title', value: 'value', active: 'active'}]
fields(Fields|Closure|array $fields)
fields(Fields|Closure|array $fields)
fields(Fields|Closure|array $fields)
fields(Fields|Closure|array $fields)
fields(Fields|Closure|array $fields)
use MoonShine\Fields\Json;
use MoonShine\Fields\Position;
use MoonShine\Fields\Switcher;
use MoonShine\Fields\Text;
public function fields(): array
{
return [
Json::make('Product Options', 'options')
->fields([
Position::make(),
Text::make('Title'),
Text::make('Value'),
Switcher::make('Active')
])
];
}
use MoonShine\Fields\Json;
use MoonShine\Fields\Position;
use MoonShine\Fields\Switcher;
use MoonShine\Fields\Text;
//...
public function fields(): array
{
return [
Json::make('Product Options', 'options')
->fields([
Position::make(),
Text::make('Title'),
Text::make('Value'),
Switcher::make('Active')
])
];
}
//...
use MoonShine\Fields\Json;
use MoonShine\Fields\Position;
use MoonShine\Fields\Switcher;
use MoonShine\Fields\Text;
//...
public function fields(): array
{
return [
Json::make('Product Options', 'options')
->fields([
Position::make(),
Text::make('Title'),
Text::make('Value'),
Switcher::make('Active')
])
];
}
//...
use MoonShine\Fields\Json;
use MoonShine\Fields\Position;
use MoonShine\Fields\Switcher;
use MoonShine\Fields\Text;
//...
public function fields(): array
{
return [
Json::make('Product Options', 'options')
->fields([
Position::make(),
Text::make('Title'),
Text::make('Value'),
Switcher::make('Active')
])
];
}
//...
use MoonShine\Fields\Json;
use MoonShine\Fields\Position;
use MoonShine\Fields\Switcher;
use MoonShine\Fields\Text;
//...
public function fields(): array
{
return [
Json::make('Product Options', 'options')
->fields([
Position::make(),
Text::make('Title'),
Text::make('Value'),
Switcher::make('Active')
])
];
}
//...

Иногда вам нужно хранить в базе данных только значения. Для этого можно использовать метод onlyValue()
. Результатом будет json ['value']
.
onlyValue(string $value = 'Value')
onlyValue(string $value = 'Value')
onlyValue(string $value = 'Value')
onlyValue(string $value = 'Value')
onlyValue(string $value = 'Value')
use MoonShine\Fields\Json;
public function fields(): array
{
return [
Json::make('Data')
->onlyValue()
];
}
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->onlyValue()
];
}
//...
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->onlyValue()
];
}
//...
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->onlyValue()
];
}
//...
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->onlyValue()
];
}
//...

Вы можете использовать метод default()
, если вам нужно указать значение по умолчанию для поля.
default(mixed $default)
default(mixed $default)
default(mixed $default)
default(mixed $default)
default(mixed $default)
use MoonShine\Fields\Json;
use MoonShine\Fields\Switcher;
use MoonShine\Fields\Text;
public function fields(): array
{
return [
Json::make('Data')
->keyValue('Key', 'Value')
->default([
[
'key' => 'Default key',
'value' => 'Default value'
]
]),
Json::make('Product Options', 'options')
->fields([
Text::make('Title'),
Text::make('Value'),
Switcher::make('Active')
])
->default([
[
'title' => 'Default title',
'value' => 'Default value',
'active' => true
]
]),
Json::make('Values')
->onlyValue()
->default([
['value' => 'Default value']
])
];
}
use MoonShine\Fields\Json;
use MoonShine\Fields\Switcher;
use MoonShine\Fields\Text;
//...
public function fields(): array
{
return [
Json::make('Data')
->keyValue('Key', 'Value')
->default([
[
'key' => 'Default key',
'value' => 'Default value'
]
]),
Json::make('Product Options', 'options')
->fields([
Text::make('Title'),
Text::make('Value'),
Switcher::make('Active')
])
->default([
[
'title' => 'Default title',
'value' => 'Default value',
'active' => true
]
]),
Json::make('Values')
->onlyValue()
->default([
['value' => 'Default value']
])
];
}
//...
use MoonShine\Fields\Json;
use MoonShine\Fields\Switcher;
use MoonShine\Fields\Text;
//...
public function fields(): array
{
return [
Json::make('Data')
->keyValue('Key', 'Value')
->default([
[
'key' => 'Default key',
'value' => 'Default value'
]
]),
Json::make('Product Options', 'options')
->fields([
Text::make('Title'),
Text::make('Value'),
Switcher::make('Active')
])
->default([
[
'title' => 'Default title',
'value' => 'Default value',
'active' => true
]
]),
Json::make('Values')
->onlyValue()
->default([
['value' => 'Default value']
])
];
}
//...
use MoonShine\Fields\Json;
use MoonShine\Fields\Switcher;
use MoonShine\Fields\Text;
//...
public function fields(): array
{
return [
Json::make('Data')
->keyValue('Key', 'Value')
->default([
[
'key' => 'Default key',
'value' => 'Default value'
]
]),
Json::make('Product Options', 'options')
->fields([
Text::make('Title'),
Text::make('Value'),
Switcher::make('Active')
])
->default([
[
'title' => 'Default title',
'value' => 'Default value',
'active' => true
]
]),
Json::make('Values')
->onlyValue()
->default([
['value' => 'Default value']
])
];
}
//...
use MoonShine\Fields\Json;
use MoonShine\Fields\Switcher;
use MoonShine\Fields\Text;
//...
public function fields(): array
{
return [
Json::make('Data')
->keyValue('Key', 'Value')
->default([
[
'key' => 'Default key',
'value' => 'Default value'
]
]),
Json::make('Product Options', 'options')
->fields([
Text::make('Title'),
Text::make('Value'),
Switcher::make('Active')
])
->default([
[
'title' => 'Default title',
'value' => 'Default value',
'active' => true
]
]),
Json::make('Values')
->onlyValue()
->default([
['value' => 'Default value']
])
];
}
//...
По умолчанию поле Json содержит только одну запись. Метод creatable()
позволяет добавлять записи, а метод removable()
позволяет удалять существующие.
creatable(
Closure|bool|null $condition = null,
?int $limit = null,
?ActionButton $button = null
)
creatable(
Closure|bool|null $condition = null,
?int $limit = null,
?ActionButton $button = null
)
creatable(
Closure|bool|null $condition = null,
?int $limit = null,
?ActionButton $button = null
)
creatable(
Closure|bool|null $condition = null,
?int $limit = null,
?ActionButton $button = null
)
creatable(
Closure|bool|null $condition = null,
?int $limit = null,
?ActionButton $button = null
)
-$condition
- условие выполнения метода,
-$limit
- количество записей, которые можно добавить,
-$button
- пользовательская кнопка добавления.
removable(
Closure|bool|null $condition = null,
array $attributes = []
)
removable(
Closure|bool|null $condition = null,
array $attributes = []
)
removable(
Closure|bool|null $condition = null,
array $attributes = []
)
removable(
Closure|bool|null $condition = null,
array $attributes = []
)
removable(
Closure|bool|null $condition = null,
array $attributes = []
)
-$condition
- условие выполнения метода,
-$attributes
- дополнительные атрибуты кнопки.
use MoonShine\Fields\Json;
public function fields(): array
{
return [
Json::make('Data')
->keyValue()
->creatable(limit: 6)
->removable()
];
}
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->keyValue()
->creatable(limit: 6)
->removable()
];
}
//...
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->keyValue()
->creatable(limit: 6)
->removable()
];
}
//...
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->keyValue()
->creatable(limit: 6)
->removable()
];
}
//...
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->keyValue()
->creatable(limit: 6)
->removable()
];
}
//...

Пользовательская кнопка добавления
use MoonShine\Fields\Json;
public function fields(): array
{
return [
Json::make('Data')
->keyValue()
->creatable(
button: ActionButton::make('New', '#')->primary()
)
];
}
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->keyValue()
->creatable(
button: ActionButton::make('New', '#')->primary()
)
];
}
//...
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->keyValue()
->creatable(
button: ActionButton::make('New', '#')->primary()
)
];
}
//...
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->keyValue()
->creatable(
button: ActionButton::make('New', '#')->primary()
)
];
}
//...
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->keyValue()
->creatable(
button: ActionButton::make('New', '#')->primary()
)
];
}
//...
Атрибуты для кнопки удаления
use MoonShine\Fields\Json;
public function fields(): array
{
return [
Json::make('Data', 'data.content')->fields([
Text::make('Title'),
Image::make('Image'),
Text::make('Value'),
])
->removable(attributes: ['@click.prevent' => 'customAsyncRemove'])
->creatable()
];
}
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data', 'data.content')->fields([
Text::make('Title'),
Image::make('Image'),
Text::make('Value'),
])
->removable(attributes: ['@click.prevent' => 'customAsyncRemove'])
->creatable()
];
}
//...
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data', 'data.content')->fields([
Text::make('Title'),
Image::make('Image'),
Text::make('Value'),
])
->removable(attributes: ['@click.prevent' => 'customAsyncRemove'])
->creatable()
];
}
//...
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data', 'data.content')->fields([
Text::make('Title'),
Image::make('Image'),
Text::make('Value'),
])
->removable(attributes: ['@click.prevent' => 'customAsyncRemove'])
->creatable()
];
}
//...
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data', 'data.content')->fields([
Text::make('Title'),
Image::make('Image'),
Text::make('Value'),
])
->removable(attributes: ['@click.prevent' => 'customAsyncRemove'])
->creatable()
];
}
//...
Вы можете получить вложенные значения полей JSON, используя .
.
Значения можно редактировать, но изменения не затронут другие ключи.
{"info": [{"title": "Info title", "value": "Info value"}], "content": [{"title": "Content title", "value": "Content value"}]}
{"info": [{"title": "Info title", "value": "Info value"}], "content": [{"title": "Content title", "value": "Content value"}]}
{"info": [{"title": "Info title", "value": "Info value"}], "content": [{"title": "Content title", "value": "Content value"}]}
{"info": [{"title": "Info title", "value": "Info value"}], "content": [{"title": "Content title", "value": "Content value"}]}
{"info": [{"title": "Info title", "value": "Info value"}], "content": [{"title": "Content title", "value": "Content value"}]}
use MoonShine\Fields\Json;
public function fields(): array
{
return [
Json::make('Data', 'data.content')
->fields([
Text::make('Title'),
Text::make('Value'),
])->removable()
];
}
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data', 'data.content')
->fields([
Text::make('Title'),
Text::make('Value'),
])->removable()
];
}
//...
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data', 'data.content')
->fields([
Text::make('Title'),
Text::make('Value'),
])->removable()
];
}
//...
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data', 'data.content')
->fields([
Text::make('Title'),
Text::make('Value'),
])->removable()
];
}
//...
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data', 'data.content')
->fields([
Text::make('Title'),
Text::make('Value'),
])->removable()
];
}
//...
Метод vertical()
позволяет изменить горизонтальное расположение полей на вертикальное.
vertical()
vertical()
vertical()
vertical()
vertical()
use MoonShine\Fields\Json;
public function fields(): array
{
return [
Json::make('Data')
->keyValue()
->vertical()
];
}
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->keyValue()
->vertical()
];
}
//...
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->keyValue()
->vertical()
];
}
//...
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->keyValue()
->vertical()
];
}
//...
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->keyValue()
->vertical()
];
}
//...

Поле Json может работать с отношениями; для этого используется метод asRelation()
, которому нужно присвоить ModelResource отношений и указать массив редактируемых полей.
asRelation(ModelResource $resource)
asRelation(ModelResource $resource)
asRelation(ModelResource $resource)
asRelation(ModelResource $resource)
asRelation(ModelResource $resource)
use MoonShine\Fields\ID;
use MoonShine\Fields\Json;
use MoonShine\Fields\Relationships\BelongsTo;
use MoonShine\Fields\Text;
public function fields(): array
{
return [
Json::make('Comments', 'comments')
->asRelation(new CommentResource())
->fields([
ID::make(),
BelongsTo::make('Article')
->setColumn('article_id')
->searchable(),
BelongsTo::make('User')
->setColumn('user_id'),
Text::make('Text')->required(),
])
->creatable()
->removable()
];
}
use MoonShine\Fields\ID;
use MoonShine\Fields\Json;
use MoonShine\Fields\Relationships\BelongsTo;
use MoonShine\Fields\Text;
//...
public function fields(): array
{
return [
Json::make('Comments', 'comments')
->asRelation(new CommentResource())
->fields([
ID::make(),
BelongsTo::make('Article')
->setColumn('article_id')
->searchable(),
BelongsTo::make('User')
->setColumn('user_id'),
Text::make('Text')->required(),
])
->creatable()
->removable()
];
}
//...
use MoonShine\Fields\ID;
use MoonShine\Fields\Json;
use MoonShine\Fields\Relationships\BelongsTo;
use MoonShine\Fields\Text;
//...
public function fields(): array
{
return [
Json::make('Comments', 'comments')
->asRelation(new CommentResource())
->fields([
ID::make(),
BelongsTo::make('Article')
->setColumn('article_id')
->searchable(),
BelongsTo::make('User')
->setColumn('user_id'),
Text::make('Text')->required(),
])
->creatable()
->removable()
];
}
//...
use MoonShine\Fields\ID;
use MoonShine\Fields\Json;
use MoonShine\Fields\Relationships\BelongsTo;
use MoonShine\Fields\Text;
//...
public function fields(): array
{
return [
Json::make('Comments', 'comments')
->asRelation(new CommentResource())
->fields([
ID::make(),
BelongsTo::make('Article')
->setColumn('article_id')
->searchable(),
BelongsTo::make('User')
->setColumn('user_id'),
Text::make('Text')->required(),
])
->creatable()
->removable()
];
}
//...
use MoonShine\Fields\ID;
use MoonShine\Fields\Json;
use MoonShine\Fields\Relationships\BelongsTo;
use MoonShine\Fields\Text;
//...
public function fields(): array
{
return [
Json::make('Comments', 'comments')
->asRelation(new CommentResource())
->fields([
ID::make(),
BelongsTo::make('Article')
->setColumn('article_id')
->searchable(),
BelongsTo::make('User')
->setColumn('user_id'),
Text::make('Text')->required(),
])
->creatable()
->removable()
];
}
//...
Для отношений наличие поля ID в методе fields обязательно!
При использовании BelongsTo необходимо использовать метод setColumn()
, чтобы установить поле в таблице базы данных!

Если поле используется для построения фильтра, то необходимо использовать метод filterMode()
. Этот метод адаптирует поведение поля и устанавливает creatable = false
.
use MoonShine\Fields\Json;
use MoonShine\Fields\Text;
public function filters(): array
{
return [
Json::make('Data')
->fields([
Text::make('Title', 'title'),
Text::make('Value', 'value')
])
->filterMode()
];
}
use MoonShine\Fields\Json;
use MoonShine\Fields\Text;
//...
public function filters(): array
{
return [
Json::make('Data')
->fields([
Text::make('Title', 'title'),
Text::make('Value', 'value')
])
->filterMode()
];
}
//...
use MoonShine\Fields\Json;
use MoonShine\Fields\Text;
//...
public function filters(): array
{
return [
Json::make('Data')
->fields([
Text::make('Title', 'title'),
Text::make('Value', 'value')
])
->filterMode()
];
}
//...
use MoonShine\Fields\Json;
use MoonShine\Fields\Text;
//...
public function filters(): array
{
return [
Json::make('Data')
->fields([
Text::make('Title', 'title'),
Text::make('Value', 'value')
])
->filterMode()
];
}
//...
use MoonShine\Fields\Json;
use MoonShine\Fields\Text;
//...
public function filters(): array
{
return [
Json::make('Data')
->fields([
Text::make('Title', 'title'),
Text::make('Value', 'value')
])
->filterMode()
];
}
//...
Метод buttons()
позволяет добавить дополнительные кнопки к полю Json.
buttons(array $buttons)
buttons(array $buttons)
buttons(array $buttons)
buttons(array $buttons)
buttons(array $buttons)
use MoonShine\ActionButtons\ActionButton;
use MoonShine\Fields\Json;
public function fields(): array
{
return [
Json::make('Data', 'data.content')->fields([
Text::make('Title'),
Image::make('Image'),
Text::make('Value'),
])->buttons([
ActionButton::make('', '#')
->icon('heroicons.outline.trash')
->onClick(fn() => 'remove()', 'prevent')
->customAttributes(['class' => 'btn-secondary'])
->showInLine()
])
];
}
use MoonShine\ActionButtons\ActionButton;
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data', 'data.content')->fields([
Text::make('Title'),
Image::make('Image'),
Text::make('Value'),
])->buttons([
ActionButton::make('', '#')
->icon('heroicons.outline.trash')
->onClick(fn() => 'remove()', 'prevent')
->customAttributes(['class' => 'btn-secondary'])
->showInLine()
])
];
}
//...
use MoonShine\ActionButtons\ActionButton;
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data', 'data.content')->fields([
Text::make('Title'),
Image::make('Image'),
Text::make('Value'),
])->buttons([
ActionButton::make('', '#')
->icon('heroicons.outline.trash')
->onClick(fn() => 'remove()', 'prevent')
->customAttributes(['class' => 'btn-secondary'])
->showInLine()
])
];
}
//...
use MoonShine\ActionButtons\ActionButton;
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data', 'data.content')->fields([
Text::make('Title'),
Image::make('Image'),
Text::make('Value'),
])->buttons([
ActionButton::make('', '#')
->icon('heroicons.outline.trash')
->onClick(fn() => 'remove()', 'prevent')
->customAttributes(['class' => 'btn-secondary'])
->showInLine()
])
];
}
//...
use MoonShine\ActionButtons\ActionButton;
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data', 'data.content')->fields([
Text::make('Title'),
Image::make('Image'),
Text::make('Value'),
])->buttons([
ActionButton::make('', '#')
->icon('heroicons.outline.trash')
->onClick(fn() => 'remove()', 'prevent')
->customAttributes(['class' => 'btn-secondary'])
->showInLine()
])
];
}
//...
Поле Json имеет методы, с помощью которых можно модифицировать кнопку удаления или изменить TableBuilder для предпросмотра и формы.
modifyRemoveButton()
Метод modifyRemoveButton()
позволяет изменить кнопку удаления.
modifyRemoveButton(Closure $callback)
/**
* @param Closure(ActionButton $button, self $field): ActionButton $callback
*/
modifyRemoveButton(Closure $callback)
/**
* @param Closure(ActionButton $button, self $field): ActionButton $callback
*/
modifyRemoveButton(Closure $callback)
/**
* @param Closure(ActionButton $button, self $field): ActionButton $callback
*/
modifyRemoveButton(Closure $callback)
/**
* @param Closure(ActionButton $button, self $field): ActionButton $callback
*/
modifyRemoveButton(Closure $callback)
use MoonShine\ActionButtons\ActionButton;
use MoonShine\Fields\Json;
public function fields(): array
{
return [
Json::make('Data')
->modifyRemoveButton(
fn(ActionButton $button) => $button->customAttributes([
'class' => 'btn-secondary'
])
)
];
}
use MoonShine\ActionButtons\ActionButton;
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->modifyRemoveButton(
fn(ActionButton $button) => $button->customAttributes([
'class' => 'btn-secondary'
])
)
];
}
//...
use MoonShine\ActionButtons\ActionButton;
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->modifyRemoveButton(
fn(ActionButton $button) => $button->customAttributes([
'class' => 'btn-secondary'
])
)
];
}
//...
use MoonShine\ActionButtons\ActionButton;
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->modifyRemoveButton(
fn(ActionButton $button) => $button->customAttributes([
'class' => 'btn-secondary'
])
)
];
}
//...
use MoonShine\ActionButtons\ActionButton;
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->modifyRemoveButton(
fn(ActionButton $button) => $button->customAttributes([
'class' => 'btn-secondary'
])
)
];
}
//...
modifyTable()
Метод modifyTable()
позволяет изменить TableBuilder для предпросмотра и формы.
modifyTable(Closure $callback)
/**
* @param Closure(TableBuilder $table, bool $preview): TableBuilder $callback
*/
modifyTable(Closure $callback)
/**
* @param Closure(TableBuilder $table, bool $preview): TableBuilder $callback
*/
modifyTable(Closure $callback)
/**
* @param Closure(TableBuilder $table, bool $preview): TableBuilder $callback
*/
modifyTable(Closure $callback)
/**
* @param Closure(TableBuilder $table, bool $preview): TableBuilder $callback
*/
modifyTable(Closure $callback)
use MoonShine\Components\TableBuilder;
use MoonShine\Fields\Json;
public function fields(): array
{
return [
Json::make('Data')
->modifyTable(
fn(TableBuilder $table, bool $preview) => $table->customAttributes([
'style' => 'width: 50%;'
])
)
];
}
use MoonShine\Components\TableBuilder;
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->modifyTable(
fn(TableBuilder $table, bool $preview) => $table->customAttributes([
'style' => 'width: 50%;'
])
)
];
}
//...
use MoonShine\Components\TableBuilder;
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->modifyTable(
fn(TableBuilder $table, bool $preview) => $table->customAttributes([
'style' => 'width: 50%;'
])
)
];
}
//...
use MoonShine\Components\TableBuilder;
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->modifyTable(
fn(TableBuilder $table, bool $preview) => $table->customAttributes([
'style' => 'width: 50%;'
])
)
];
}
//...
use MoonShine\Components\TableBuilder;
use MoonShine\Fields\Json;
//...
public function fields(): array
{
return [
Json::make('Data')
->modifyTable(
fn(TableBuilder $table, bool $preview) => $table->customAttributes([
'style' => 'width: 50%;'
])
)
];
}
//...