我有一个基于两个表one to many
和users
的{{1}}关系。还有一个数据透视表 games
(链接{{ 1}}至users_games
)。
我正在尝试使用以下脚本基于user_id
和games
提取一条记录
game_id
以下是上面脚本的响应(我正在使用user_id
资源)
$GameInfo = User::with(['games' => function ($query) use($request)
{
$query->where('game_id', $request->game_id);
}])->whereHas('games', function ($query) use($request)
{
$query->where('game_id', '=', $request->game_id);
})->find(request()->user()->id);
实际上,我现在想提取该游戏的API
,该游戏也存储在{
"data": [
{
"id": 4,
"name": "eum",
"type_id": 2,
"created_at": "2018-10-30 11:23:28",
"updated_at": "2018-10-30 11:23:28",
"pivot": {
"user_id": 2,
"game_id": 4
}
}
]
}
表中。我做了很多尝试,但仍未能获得理想的结果。
我想请您指导我该如何做。我会很感激的。
答案 0 :(得分:1)
在雄辩的关系中,您可以使用withPivot()
函数:
return $this->belongsToMany('App\Role')->withPivot('column1', 'column2');
,但是它将始终返回数据透视列,如果您只想在当前查询中执行此操作,则可以这样做:
$GameInfo = User::with(['games' => function ($query) use($request)
{
$query->withPivot('highscore')->where('game_id', $request->game_id);
}])->whereHas('games', function ($query) use($request)
{
$query->where('game_id', '=', $request->game_id);
})->find(request()->user()->id);