雄辩的急切负载,选择计数和总和

时间:2016-01-26 15:03:29

标签: laravel laravel-5 eloquent

我的目标是检索“事件”和“事件类型”,计算每天“事件”的数量(groupby天数),并在每个日期获得“eventtypes.price”的总和。我在访问eventtype表时遇到问题。

活动表

id
event_start

事件类型表

id
price

查询(此查询有效)

    $events = Event::with('eventtype')
    ->select(DB::raw('DATE(events.event_start) as date'), DB::raw('count(*) as eventcount'))
    ->where('events.event_start', '>=', $rangestart)
    ->groupBy('date')
    ->orderBy('date', 'ASC')
    ->get();

查询(此查询返回错误列未找到:1054未知列'eventtypes.price'在'字段列表'中)

    $events = Event::with('eventtype')
    ->select(DB::raw('DATE(events.event_start) as date'), DB::raw('count(*) as eventcount'), DB::raw('sum(eventtypes.price) as sumtotal'))
    ->where('events.event_start', '>=', $rangestart)
    ->groupBy('date')
    ->orderBy('date', 'ASC')
    ->get();        

不确定为什么eventtypes.price不知道,它在我的模型中明确定义,我在其他地方使用它。

1 个答案:

答案 0 :(得分:0)

您应该加入eventtypes

您应该在查询中添加类似的smth。

->join('eventtypes', 'event.type_id', '=', 'eventtypes.id')

我认为您错过了with这是一个急切的加载,并且在查询中无法访问此关系。