根据相关表的日期限制结果

时间:2015-03-18 14:08:00

标签: eloquent laravel-5

我有两个表,一个是事件表,一个是event_dates表。

我想要做的是根据event_dates限制事件的结果数量。例如:如果当前日期是事件的最后日期,则不会返回。

目前我有这个:

$events = Events::with(['dates'=>function($query)
            {
                $query->orderBy('event_date','asc');
            }])->get();

return response()->json($events);

这会给我一个带有“dates”数组升序的json数组。有没有办法在事件查询的where子句中使用该数组中的最后一行?

1 个答案:

答案 0 :(得分:1)

具有正确条件的

whereHas应该有效:

$today = Carbon::now()->toDateString();
$events = Events::whereHas('dates', function($q) use ($today){
    $q->where('event_date', '>=', $today);
})->get();

如果你仍然想加载关系,那么显然只需添加with() ......