laravel - laravel 5.2 从今天开始接下来的 3 个事件
问题描述
我想设置一个活动日历。用户必须看到从今天开始的接下来的 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最终检索结果。按顺序,我们告诉数据库:
- 将所有议程过滤为仅日期大于我们传入的日期的议程
- 按日期排序过滤后的集合,从最早的开始
- 从该过滤集中取出前三个
- 将该集合返回到 $agendas 变量。
推荐阅读
- javascript - 需要使用 Javascript(office.js) 检索 Outlook 应用程序选定的邮件项目
- angular - single-spa 框架主应用程序从远程服务器调用子应用程序
- java - 如何将主题(样式、颜色、字体)从片段应用到整个应用程序?
- python - 如何从 django 中的 ForeignKey 的 id 获取名称?
- airflow - 在 Azure 上部署 Airflow 2.0+
- firebase - 如何从子集合 Firebase Firestore Vue 中获取所有项目
- r - 如何将 NA 从 R 中的 summarise(count = n()) 函数中删除?
- android-layout - 如何在 Whatsapp 中获取聊天布局
- python - 返回两个列表的公共元素的索引
- docker - 如何将现有容器放入 docker-compose?