根据相关 table 的日期限制结果
Limit results based on the dates of a related table
我有两个table,一个是事件table,一个是event_dates table.
我想做的是根据 event_dates 限制我的活动的结果数量。例如:如果当前日期超过事件的最后日期,则不会返回。
目前我有这个:
$events = Events::with(['dates'=>function($query)
{
$query->orderBy('event_date','asc');
}])->get();
return response()->json($events);
这将给我一个 json 数组和一个 "dates" 数组升序。有没有办法在事件查询的 where 子句中使用该数组的最后一行?
whereHas
在正确的条件下应该可以工作:
$today = Carbon::now()->toDateString();
$events = Events::whereHas('dates', function($q) use ($today){
$q->where('event_date', '>=', $today);
})->get();
如果您仍想急切加载关系,显然只需添加 with()
...
我有两个table,一个是事件table,一个是event_dates table.
我想做的是根据 event_dates 限制我的活动的结果数量。例如:如果当前日期超过事件的最后日期,则不会返回。
目前我有这个:
$events = Events::with(['dates'=>function($query)
{
$query->orderBy('event_date','asc');
}])->get();
return response()->json($events);
这将给我一个 json 数组和一个 "dates" 数组升序。有没有办法在事件查询的 where 子句中使用该数组的最后一行?
whereHas
在正确的条件下应该可以工作:
$today = Carbon::now()->toDateString();
$events = Events::whereHas('dates', function($q) use ($today){
$q->where('event_date', '>=', $today);
})->get();
如果您仍想急切加载关系,显然只需添加 with()
...