laravel 5.2从今天开始的下三个事件

时间:2018-09-01 20:43:26

标签: laravel laravel-5.2

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

我的控制器:

        data: function(d) {
            var form_data = $('#criteriaForm').serializeArray();
            $.each(form_data, function(key,val) {
                d[val.name] = val.value;
            });
        },

1 个答案:

答案 0 :(得分:0)

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

$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 最终检索结果。按顺序,我们告诉数据库:

  • 将所有议程过滤为仅包含日期大于我们通过的日期的那些
  • 从最早的日期开始按日期排序过滤后的集合
  • 从该过滤后的集合中获取前三个
  • 返回该变量,并将其设置为$ agendas变量。