如何在laravel中与键盘配合使用以获得表格的更多细节?

时间:2018-11-06 11:41:33

标签: php laravel laravel-5.6

我有一个基于两个表one to manyusers的{​​{1}}关系。还有一个数据透视表 games(链接{{ 1}}至users_games)。

我正在尝试使用以下脚本基于user_idgames提取一条记录

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 } } ] } 表中。我做了很多尝试,但仍未能获得理想的结果。

我想请您指导我该如何做。我会很感激的。

1 个答案:

答案 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);