我使用Laravel作为后端,使用Vue.js作为前端。
我正在创建一个API,以获取所有数据,而没有基于Month的任何过滤器。
那么,如何在Vue.js模板中显示其月份的数据?
例如,我有数据:
显示它们的最佳方法是什么?或者我必须在控制器中创建不同月份的不同方法。
请告知 谢谢
答案 0 :(得分:1)
我也有同样的情况,我从Vue的日历中选择日期范围,然后将该日期发送到laravel,然后使用Carbon解析这些日期在laravel中,并使用这些日期范围查找雄辩的记录。
$query = Payment::query();
if($request->filled('startDate')){
$query = $query->where('date','>=',Carbon::parse($request->startDate)->toDateTimeString());
}
if($request->filled('endDate')){
$query = $query->where('date','<=',Carbon::parse($request->endDate)->toDateTimeString());
}
return response()->json(['payments' => $query->get()]; //return in format that you want
我们还可以使用Carbon返回起始日期和结束日期之间的日期范围
function findDateRange($request)
{
$carbon = '\Carbon\Carbon';
$dateRange = 'Invalid Date Range';
if($request->filled('startDate') && $request->filled('endDate')){
$differenceInDays = $carbon::parse($request->startDate)->diffInDays($carbon::parse($request->endDate));
if($differenceInDays < 7){
$dateRange = 'Week '. $carbon::parse($request->startDate)->weekOfYear .'<br>'. $carbon::parse($request->startDate)->format(authUser()->date_format) .' - '.$carbon::parse($request->endDate)->format(authUser()->date_format);
}elseif($differenceInDays > 6 && $differenceInDays < 32){
$dateRange = $carbon::parse($request->startDate)->format('F Y');
}elseif($differenceInDays > 32 && $differenceInDays < 366){
$dateRange = $carbon::parse($request->startDate)->format('Y');
}
}
return $dateRange;
}