如何使用 Laravel 中的访问器方法转换数组中的 json 数据?
How to convert an json data in array using accessor method in Laravel?
我是 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
)
)
兄弟,您只需要在模型中添加访问器方法,例如:
猜猜你的数据库中有 xyz 列
public function getXyzAttribute($xyz)
{
return json_decode($xyz);
}
直接return数组。
希望有用。 :)
我添加这个答案是因为另一个只显示一种方式,而且是最少使用的...我的是 Laravel 方式,你应该经常使用的方式,也是你将要看到的最多的方式一直...
如果您有一个 属性 的模型,例如 data
,您不必通过执行 getDataAttribute
和使用 [=15] 来覆盖它的读取方式=]...
如果 property/field 在你的数据库中是一个 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}
一样保存在数据库中
我是 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
)
)
兄弟,您只需要在模型中添加访问器方法,例如:
猜猜你的数据库中有 xyz 列
public function getXyzAttribute($xyz)
{
return json_decode($xyz);
}
直接return数组。
希望有用。 :)
我添加这个答案是因为另一个只显示一种方式,而且是最少使用的...我的是 Laravel 方式,你应该经常使用的方式,也是你将要看到的最多的方式一直...
如果您有一个 属性 的模型,例如 data
,您不必通过执行 getDataAttribute
和使用 [=15] 来覆盖它的读取方式=]...
如果 property/field 在你的数据库中是一个 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}