arrays - 使用 Laravel 从数据库中返回嵌套的 Json 作为数组
问题描述
我的数据库中有这个嵌套的 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像邮递员预览(image2)中一样,一个数组,所以我可以访问它的属性,
例如:在 foreach 之后,我可以访问“skill1->description”、cost 等。
我怎样才能做到这一点 ?
解决方案
在您的 Cd 模型中,您应该投射您的“技能”属性:
class Cd extends Model
{
protected $casts = ['skills'=>'array'];
....
}
通过使用 '$casts' 您的模型将自动将 json 字段转换为字符串而不是纯字符串
有关数组和 json 转换的更多信息:
https://laravel.com/docs/7.x/eloquent-mutators#array-and-json-casting
推荐阅读
- vba - For 在 VBA 中为整数分配随机值的语句
- r - 在 R 中使用 geom_boxplot() + geom_jitter() 时如何排除异常值
- bash - 使用附加参数将函数的 Bash 完成委托给命令
- javascript - 在其他网站上使用 iframe 嵌入代码时进行跟踪
- python - 如何在 numpy-stl 中正确查看点云数据?
- c# - 如何在 Visual Studio C# 中使用其他项目中的类
- mockito - Junit mockito 单元测试用例给出空指针异常
- javascript - Javascript循环函数(i)
- google-apps-script - eventOpenTrigger 函数不会在事件对象响应中返回事件摘要详细信息
- javascript - 如何在变量中的字符串中使用 javascript?