我的数据库中有这样一个嵌套的json文件
{
"skills":{
"skill1":{
"description":"deal 100 damage",
"cost":2,
"name":"basic skill"
},
"skill2":{
"description":"deal 900 damage",
"cost":1,
"name":"special skill"
}
}
}
但当我从我的数据库中得到这个json时,它返回一个字符串(image1)。
public function list(){
$data = Cd::all();
return $data;
}
我希望这个json能像postman预览(image2)一样,是一个数组,这样我就可以访问它的属性。
例如:在foreach之后,我可以访问 "skill1->description",成本等。
我如何才能做到这一点?
在你的Cd模型中,你应该施放你的'技能'属性。
class Cd extends Model
{
protected $casts = ['skills'=>'array'];
....
}
通过使用'$casts',你的模型将自动把json字段转换成字符串,而不是纯字符串。
更多关于array & json铸造的信息。
https:/laravel.comdocs7.xeloquent-mutators#array and json-casting。