我的项目和(成员,团队)表之间存在多态的多对多关系。基本上可以将成员或团队分配给项目。成员归入团队。
我想选择分配给当前成员所在团队的项目。我可以通过这样的原始查询得到它:
DB::select(
DB::raw('
SELECT DISTINT project_id FROM projectvisibles PV
WHERE PV.projectvisible_type = "Team"
AND PV.projectvisible_id IN (
SELECT team_id FROM member_team
WHERE member_id = :id)
'), ['id' => $id]
);
如何以Eloquent形式编写此原始查询?
我的数据库:
项目表:
ID,
PROJECT_ID,
名称
会员表:
ID,
名称
小组表:
ID,
名称
Member_Team表: (可以通过此表将成员分组到团队中)
member_id,
TEAM_ID
ProjectVisibles表: (项目可以通过此表分配给成员或团队(多态多对多)
PROJECT_ID,
projectvisible_id (会员ID或团队ID),
projectvisible_type (成员或团队)
答案 0 :(得分:0)
这将是这样的东西
Db::table('projectvisibles')->where('projectvisible_type', '=', 'Team')->whereIn('projectvisible_id', function($query) use (& $id)
{
$query->select('team_id')->from('member_team')->where('member_id', '=', $id);
})->get();