如何解决如何使用 Laravel 中的访问器方法转换数组中的 json 数据?
我是 Laravel 8 的新手。请对下面给出的代码提出任何建议或回答我的问题: 下面给出的是我的代码一个我真正想要得到的例子: 我的数据是:
[{"column_1_1":"value_1_1","column_1_2":"value_1_2"},{"column_2_1":"value_2_1","column_2_2":"value_2_2"}]
我想要
Array
(
[0] => stdClass Object
(
[column_1_1] => value_1_1
[column_1_2] => value_1_2
)
[1] => stdClass Object
(
[column_2_1] => value_2_1
[column_2_2] => value_2_2
)
)
解决方法
我正在添加这个答案,因为另一个只显示一种方式并且是最少使用的...我的是 Laravel 方式,您应该始终使用一种方式,并且您将一直看到最多的方式...
如果您有一个属性为 data
的模型,您不必通过执行 getDataAttribute
并使用 json_decode
...
如果该属性/字段是您数据库中的 JSON/TEXT(因此存储 JSON),您只需cast
它。
class YourModel extends Model
{
protected $casts = [
'data' => 'array'
];
}
所以以后你可以这样做:
foreach ($model->data as $item) {
...
}
并在其中存储信息,例如:
$array = ['products' => [item1','item2'],'quantity' => 2];
$model->data = $array;
它会像{products: ["item1","item2"],quantity: 2}
兄弟,您只需要在模型中添加访问器方法,例如:
猜猜你的数据库中有 xyz 列
public function getXyzAttribute($xyz)
{
return json_decode($xyz);
}
它会直接返回数组。
希望它有效。 :)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。