我有一个名为json
的{{1}}列类型的数据库模型。此列将包含模型的其他详细信息。
例如:
attributes
。
我想在attributes : {'desc' : 'test', 'width' : '500'}
列中显示各个属性(desc
和width
)作为Laravel管理资源中的html字段。
我检查了受支持的field types,但似乎不支持。
有人建议我该怎么做吗?
答案 0 :(得分:6)
这就是我在Nova 2.0中能够完成此操作的方式。就我而言,我有一个名为 fields 的JSON列。在模型中, fields 强制转换为数组。
protected $casts = [
'fields' => 'array'
];
然后在资源中,使用->运算符映射该列。
Text::make('Name', 'fields->name')
答案 1 :(得分:3)
我不确定这是否是建议的答案,但我已经找到了一种适合您的方法。
使用雄辩的变异者:Eloquent Mutators
然后,您定义一个getDescAttribute
和一个setDescAttribute
并将其像模型中的属性一样在nova中传递:
Text::make('Desc', 'desc')
希望这会有所帮助。
答案 2 :(得分:0)
尝试 this 。 这是nova字段描述中唯一提到的“ JSON”。
答案 3 :(得分:0)
例如,“ desc”列的值类似于:
"{attributes : {'desc' : 'test', 'width' : '500'}}"
您可以直接将其放入表格格式:
KeyValue::make('Desc', 'desc**.attributes**')
希望这会有所帮助