2

我有一个json列类型名为的数据库模型attributes。此列将包含模型的其他详细信息。

例如: attributes : {'desc' : 'test', 'width' : '500'}

我想在 Laravel 管理资源中将列中的单个属性 ( desc& width)显示attributes为 html 字段。

我检查了支持的字段类型,但似乎不支持。

有什么建议我该怎么做?

4

3 回答 3

8

以下是我在 Nova 2.0 中实现这一点的方法。就我而言,我有一个名为fields的 JSON 列。在模型中,字段被转换为数组。

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

然后在资源中,使用 -> 运算符映射列。

Text::make('Name', 'fields->name')
于 2019-08-08T17:58:31.120 回答
4

我不确定这是否是推荐的答案,但我找到了一种适合您的方法。

使用 Eloquent Mutator:Eloquent Mutators

然后定义 agetDescAttribute和 asetDescAttribute并将其传递给 nova,就像模型上的属性一样,如下所示:

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

希望这可以帮助。

于 2018-09-22T15:23:34.773 回答
0

例如,“desc”列的值类似于:

"{attributes : {'desc' : 'test', 'width' : '500'}}"

您可以直接将其放入表格格式中:

KeyValue::make('Desc', 'desc**.attributes**')

希望这可以帮助

于 2019-10-11T05:17:01.430 回答