【问题标题】:Laravel, how to filter date in views?Laravel,如何过滤视图中的日期?
【发布时间】:2017-11-20 03:32:39
【问题描述】:
我的视图设置或多或少类似于下图,或者可以在 jsfiddle https://jsfiddle.net/t37g4yzp/1/ 上看到它
如何根据用户在视图中输入的开始日期和结束日期过滤表格中的日期?
控制器
public function index()
{
$get_all_user = User::all();
return view('userPage.index', compact('get_all_user'));
}
【问题讨论】:
标签:
javascript
php
laravel
【解决方案1】:
这就是我进行日期过滤的方式。为了捕获开始数据和结束日期,将Request对象注入索引方法。然后我将验证提交的数据并将日期转换为Carbon对象,这提供了更多选项,例如格式化日期。最后我使用whereDate eloquent 查询函数来比较日期。所以最终的结果会是这样的。
public function index(Request $request)
{
this->validate($request,[
'start_date' => 'required|date',
'end_date' => 'required|date|before_or_equal:start_date',
]);
$start = Carbon::parse($request->start_date);
$end = Carbon::parse($request->end_date);
$get_all_user = User::whereDate('date','<=',$end->format('m-d-y'))
->whereDate('date','>=',$start->format('m-d-y'));
return view('userPage.index', compact('get_all_user'));
}
【解决方案2】:
use Carbon\Carbon;
public function index()
{
$start = Carbon::parse($request->start_date);
$end = Carbon::parse($request->end_date);
$get_all_user = User::whereDate('created_at','<=',$end)
->whereDate('created_at','>=',$start)
->get();
return $get_all_user;
}
邮递员
注意:使用->get(); 否则会报错。