Json

Вы просматриваете документацию старой версии MoonShine. Рассмотрите возможность обновления вашего проекта до MoonShine 2.x.

В базе поле должно иметь тип text или json. Также cast eloquent модели array или json или collection.

# Ключ/Значение

Самый простой способ с использованием метода keyValue, в таком случае в базе будет простой json [{key: value}]

use MoonShine\Fields\Json;
 
//...
public function fields(): array
{
return [
Json::make('Product Options', 'options')
->keyValue('Characteristic', 'Value') // Первый аргумент Лейбл ключа, второй лейбл значения
];
}
//...

# С набором полей

Для более расширенного использования воспользуйтесь методом fields и передайте необходимый набор полей подобно тому как работает ресурс

use MoonShine\Fields\Json;
 
//...
public function fields(): array
{
return [
Json::make('Product Options', 'options')
->fields([
Text::make('Title', 'title'),
Text::make('Value', 'value')
])
];
}
//...

json [{title: 'value', value: 'value'}]

# Удаление

Json::make('Product Options', 'options')
->keyValue('Characteristics', 'Value')
->removable()

# Только значение

Иногда требуется сохранять в базе данных только значения, для этого можно воспользоваться методом onlyValue().

Json::make('Product Options', 'options')
->onlyValue()