laravel 5.2 今天接下来的 3 场比赛

laravel 5.2 the next 3 events from today

我想设置活动日历。 用户必须看到今天接下来的 3 个事件 因此,当日期过去时,事件就会消失 怎么做?谢谢

我的控制器:

class AccueilController extends Controller {
    public function affichePage() {
        $agenda = Agenda::all()->take(3)->sortBy('date');
        return view('Accueil.Page',compact('slides','agenda'));
    }
}

由于您拨打电话的方式,您的代码未被排序。这是目前正在发生的事情:

$agenda = Agenda::all()

加载数据库中的每个议程

->take(3)

从我加载的所有议程中,选择前三个。

->sortBy('date');

按日期对这三个进行排序。

根据您的要求,要实现您想要的效果,您可以致电

$agenda = Agenda::where('date', '>=', $the_date)->orderBy('date', 'asc')->take(3)->get();

其中$the_date是你想要的最小日期。通常,您会使用 Carbon 库中的日期函数来执行此操作:

$the_date = \Carbon\Carbon::now();

此查询强制在数据库中完成工作,调用 get 最终检索结果。按照顺序,我们告诉数据库:

  • 将所有议程过滤为仅那些日期大于我们传入的日期的议程
  • 按日期对筛选集进行排序,从最早的开始
  • 从过滤后的集合中取出前三个
  • Return 设置为 $agendas 变量。