Laravel-admin table 解析 JSON 报错
官方文档说:如果某一个字段存储的是json
格式的二维数组,可以使用table
表单组件来实现快速的编辑:
$form->table('extra', function ($table) {
$table->text('key');
$table->text('value');
$table->text('desc');
});
同时在模型里面给这个字段增加访问器和修改器:
public function getExtraAttribute($extra)
{
return array_values(json_decode($extra, true) ?: []);
}
public function setExtraAttribute($extra)
{
$this->attributes['extra'] = json_encode(array_values($extra));
}
下面是我的代码:
$form->table('result', function ($table) {
$table->text('name');
$table->text('age');
});
测试json,也就是result里存的东西
[
{
"name":"zhangsan",
"age":"20"
},
{
"name":"lisi",
"age":"21"
}
]
报错信息:
Invalid argument supplied for foreach() (View: D:\Didongni\App\idongni\vendor\encore\laravel-admin\resources\views\form.blade.php)
所以这里到底要怎么用呢?
你添加修改器和访问器了吗?
在 form.blade.php 把变量 dd 出来就知道了
两点:
第一,所有数据进行使用之前都需要判断一下
第二,如果你只是针对这个字段进行了json_encode,json_decode这个简单的操作,Mutators 就能完成,不需要自己费劲的写,参考:https://learnku.com/docs/laravel/master/eloquent-m...