我使用下面的查询在我的控制器中得到了一些编码的结果
$events = Event::whereHas('topic', function ($q) {
$q->where('delete_status', 0);
})
->where('status', 1)
->where('delete_status', 0);
在我的视图文件中,我已经三次使用这个变量来检查下面的中的Date
$events->where('type', '!=', 2)->whereDate('start_date', '>=', CarbonCarbon::now())->get()
和
$events->where('type', 2)->whereDate('start_date', '>=', CarbonCarbon::now())->get()
和
$events->whereDate('start_date', '<', CarbonCarbon::now())->get()
因为我想根据过去的日期或现在的日期得到结果。如果我使用get-in-controller查询,我会得到的错误,其中Date((不存在所以我在视图文件中使用了get((方法。
我无法从第二个和第三个查询中获得记录,但我只能从视图文件中的第一个查询中获取记录。
有什么解决方案吗?
$events
是一个没有whereDate
方法的集合,您可能需要的是filter()
来在视图中过滤您的集合。因此你可以这样做
$filtered_events =
$events->where('type', 2)
->filter(function ($item) {
return Carbon::parse($item->start_date)->gte(Carbon::today());
});
参考