您好我需要访问json文件中的嵌套字段。我正在使用Laravel 5,我在控制器中有这个:
public function getLanguages($id){
$user=User::find($id);
if (!$user)
{
return response()->json(['errors'=>array(['code'=>404,'message'=>'No se encuentra un usuario con ese código.'])],404);
}
return Response::make(json_encode($user->languages), 200)->header('Content-Type', 'application/json');
}
这是输出:
[
{
"id": 1,
"name": "Español",
"pivot": {
"id_user": 1,
"id_language": 1
}
},
{
"id": 2,
"name": "Inglés",
"pivot": {
"id_user": 1,
"id_language": 2
}
},
{
"id": 3,
"name": "Alemán",
"pivot": {
"id_user": 1,
"id_language": 3
}
}
]
我想访问用户拥有的语言名称,我该怎么做?这是用户和语言之间的多对多关系,通过用户模型更好地访问语言?或从数据透视表访问?
感谢。
答案 0 :(得分:0)
由于$user->languages
是包含这些语言的数组,因此您可以使用array_map
,例如
function extract_name($el) {
return $el['name'];
}
$names = array_map('extract_name', $user->languages);
答案 1 :(得分:0)
试试这个
$user = User::find($id)->languages->toArray();
$languages = array_column($user, 'name');
return Response::make(json_encode($languages), 200)->header('Content-Type', 'application/json');