我有一个json
列类型名为的数据库模型attributes
。此列将包含模型的其他详细信息。
例如:
attributes : {'desc' : 'test', 'width' : '500'}
。
我想在 Laravel 管理资源中将列中的单个属性 ( desc
& width
)显示attributes
为 html 字段。
我检查了支持的字段类型,但似乎不支持。
有什么建议我该怎么做?
我有一个json
列类型名为的数据库模型attributes
。此列将包含模型的其他详细信息。
例如:
attributes : {'desc' : 'test', 'width' : '500'}
。
我想在 Laravel 管理资源中将列中的单个属性 ( desc
& width
)显示attributes
为 html 字段。
我检查了支持的字段类型,但似乎不支持。
有什么建议我该怎么做?
以下是我在 Nova 2.0 中实现这一点的方法。就我而言,我有一个名为fields的 JSON 列。在模型中,字段被转换为数组。
protected $casts = [
'fields' => 'array'
];
然后在资源中,使用 -> 运算符映射列。
Text::make('Name', 'fields->name')
我不确定这是否是推荐的答案,但我找到了一种适合您的方法。
使用 Eloquent Mutator:Eloquent Mutators
然后定义 agetDescAttribute
和 asetDescAttribute
并将其传递给 nova,就像模型上的属性一样,如下所示:
Text::make('Desc', 'desc')
希望这可以帮助。
例如,“desc”列的值类似于:
"{attributes : {'desc' : 'test', 'width' : '500'}}"
您可以直接将其放入表格格式中:
KeyValue::make('Desc', 'desc**.attributes**')
希望这可以帮助