用Laravel从数据库中返回嵌套的Json作为数组.

问题描述 投票:0回答:1

我的数据库中有这样一个嵌套的json文件

 {

"skills":{
    "skill1":{
        "description":"deal 100 damage",
        "cost":2,
        "name":"basic skill"
    },
        "skill2":{
        "description":"deal 900 damage",
        "cost":1,
        "name":"special skill"
    }
}
}

但当我从我的数据库中得到这个json时,它返回一个字符串(image1)。

image1 我使用laravel从数据库中获取数据。

 public function list(){
        $data = Cd::all();
        return $data;  
  }

我希望这个json能像postman预览(image2)一样,是一个数组,这样我就可以访问它的属性。

例如:在foreach之后,我可以访问 "skill1->description",成本等。

我如何才能做到这一点?

image2

arrays json laravel multidimensional-array
1个回答
0
投票

在你的Cd模型中,你应该施放你的'技能'属性。

class Cd extends Model 
{
 protected $casts = ['skills'=>'array'];
.... 
}

通过使用'$casts',你的模型将自动把json字段转换成字符串,而不是纯字符串。

更多关于array & json铸造的信息。

https:/laravel.comdocs7.xeloquent-mutators#array and json-casting。

© www.soinside.com 2019 - 2024. All rights reserved.