Laravel Nova - Карта базы данных JSON столбца в поле - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть модель базы данных с json типом столбца с именем attributes.Этот столбец будет содержать дополнительные сведения о модели.

Например: attributes : {'desc' : 'test', 'width' : '500'}.

Я хотел бы отобразить отдельный атрибут (desc & width) в столбце attributesв качестве html-поля в ресурсе администратора Laravel.

Я проверил поддерживаемые типы полей и, похоже, не поддерживает.

Есть предложения, как мне это сделать?

Ответы [ 3 ]

0 голосов
/ 10 мая 2019

Попробуйте это .Это единственное упоминание "JSON" в описании полей nova.

0 голосов
/ 08 августа 2019

Вот как мне удалось это сделать в Nova 2.0. В моем случае у меня есть столбец JSON с именем fields . В модели поля преобразуются в массив.

protected $casts = [
    'fields' => 'array'
];

Затем в ресурсе столбец отображается с помощью оператора ->.

Text::make('Name', 'fields->name')
0 голосов
/ 22 сентября 2018

Я не уверен, что это рекомендуемый ответ, но я нашел способ, который должен работать для вас.

Используйте Eloquent Mutator: Eloquent Mutators

Затем вы определяете getDescAttribute и setDescAttribute и передаете его в nova как свойство модели следующим образом:

Text::make('Desc', 'desc')

Надеюсь, это поможет.

...