我正在尝试从具有数据透视表user_games
的games
表中获取数据。下面的代码如果对我来说工作正常
$UserGames = User::with(['games' => function ($query){
$query->withPivot('highscore','level');
}])->find(request()->user()->id);
我收到以下 json 响应
{
"data": [
{
"id": 2,
"name": "culpa",
"type_id": 3,
"created_at": "2018-10-30 11:23:27",
"updated_at": "2018-10-30 11:23:27",
"pivot": {
"user_id": 2,
"game_id": 2,
"highscore": 702,
"level": 3
}
}
]
}
但我想从上面的 json 中删除 pivot
关键字,并将数据透视详细信息拉入根,如下我的愿望响应
{
"data": [
{
"id": 2,
"name": "culpa",
"type_id": 3,
"created_at": "2018-10-30 11:23:27",
"updated_at": "2018-10-30 11:23:27",
"user_id": 2,
"highscore": 702,
"level": 3
}
]
}
有人可以指导我如何解决这个问题吗?我将不胜感激。非常感谢
最佳答案
您可以在数据透视模型上利用hidden
和appends
来重新构造返回的数据。
class PivotModel extends model
{
protected $hidden = ['pivot'];
protected $appends = ['user_id'];
public function getUserIdAttribute()
{
return $this->pivot->user_id;
}
}
关于php - 如何使用laravel从json中删除pivot关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53185514/