如何使用where子句

时间:2015-07-23 15:52:27

标签: sql laravel laravel-4

我有3个模型代表参与者参与者 参加者可以注册。

  1. 预定程序 ,其中包含许多
  2. ScheduledProgramSegments 属于许多
  3. 与会者 (属于许多ScheduledProgramSegments)
  4. 与会者有一个字段已注册,这是一个bool 1/0,用于指示与会者是否已注册。

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

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

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

    修改:为了澄清,我有一个带有字段registered的数据透视表,我希望加载标记为registered的记录数。

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

1 个答案:

答案 0 :(得分:1)

尝试在查询中更新此部分

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