首页 文章

如何获取与where子句属于多个关系的记录的最大计数

提问于
浏览
1

我有3个模型代表 ProgramsProgram SegmentsAttendees 可以注册 .

  • ScheduledPrograms 有很多

  • ScheduledProgramSegments 属于很多人

  • Attendees (属于许多ScheduledProgramSegments)

与会者有一个字段 registered ,它是一个bool 1/0,用于指示与会者是否已注册 .

我想进行查询,以查找程序的ProgramSegments中的最大与会者注册计数 . I.E.就像是

Max(    ScheduledProgram::find(id)->ScheduledProgramSegments->with([('attendees') => function($query)
    {
        $query->where('registered');
    }])->count();
);

有没有办法在Eloquent或Query Builder中编写此查询?如果这是唯一的方法,即使使用查询生成器的原始表达式?

Edit: 为了澄清,我有一个带有字段 registered 的数据透视表,我想加载记录的数量,标记为 registered .

到目前为止,似乎这是不可能的,除非我添加并维护一个我不想做的计数字段,所以我运行一个单独的查询来获取我从数据透视表中检索的每个单独记录的计数 .

1 回答

  • 1

    尝试在查询中更新此部分

    $query->where('registered')->max('column_name');
    

相关问题