使用“ with”在laravel中加入&在连接表中设置where语句

时间:2019-01-13 12:28:32

标签: laravel join orm eloquent

我这样写我的代码:

    $teams = TeamTeam::query()
        ->selectRaw('team_teams.title, team_teams.team_structure_id, team_teams.id,
         team_teams.description')
        ->join('team_structures','team_teams.team_structure_id',"=",'team_structures.id')
        ->where('team_structures.organization_id',session()->get('organization_id'))
        ->orderBy('team_structures.created_at','desc');
    $teams = $teams->get();

我想使用from而不是像这样的加入:

TeamTeam :: with('TeamStructure')...并在team_structures表中设置where语句。我该怎么用??!

谢谢。

1 个答案:

答案 0 :(得分:0)

$teams = TeamTeam::with(['TeamStructure' => function ($q1){
            $q1->where('organization_id', session()->get('organization_id'))->orderBy('created_at', 'desc');
        }])
        ->whereHas('TeamStructure', function ($q2){
            $q2->where('organization_id', session()->get('organization_id'))->orderBy('created_at', 'desc');
        })
        ->select('title', 'team_structure_id', 'id', 'description')
        ->get();