Laravel - 用ajax获取两个日期之间的记录
我使用Laravel,我想在两个日期之间得到记录。在前端我使用daterangepicker和我写的:Laravel - 用ajax获取两个日期之间的记录
$('#reportrange').on('apply.daterangepicker', function(ev, picker) {
var start = picker.startDate.format('YYYY-MM-DD');
var end = picker.endDate.format('YYYY-MM-DD');
$.ajaxSetup({
headers: {
'X-XSRF-Token': $('meta[name="_token"]').attr('content')
}
});
$.ajax({
type: "POST",
url : '{{url()}}/getOrders',
data: {start: start, end: end},
cache : false,
beforeSend : function() {
console.log('krece');
},
success : function(data) {
console.log(data);
},
error : function() {
}
});
});
,所以我尝试发送的开始和结束日期之间,并在Laravel获取日期我:
路线:
Route::post('/getOrders', '[email protected]');
,并在OrdersController:
public function getOrders(Request $request) {
$start = $request->start;
$end = $request->end;
//ALSO NEED QUESRY WHICH WILL FETCH ROWS BETWEEN DATES
//$orders = Auth::user()->orders()->get(); ... ...
return $orders;
}
现在当我在daterangepicker中选择一些日期我得到:
POST http://localhost:8888/getOrders 500 (Internal Server Error)
什么问题?
关在头五言我把:
<meta name="csrf-token" content="{{ csrf_token() }}" />
如何获得日期间记录第i个Laravel和jQuery AJAX?
您可以使用whereBetween()
取得日期之间的结果:
$orders = Auth::user()
->orders()
->whereBetween('created_at', [$start_date, $end_date])
->get();
希望这有助于!
对于查询,你可以做:
$orders = Auth::user()->orders()
->whereBetween('created_at', array($start, $end))
->get();
而对于500 (Internal Server Error)
您可以检查您laravel.log
文件。
laravel.log说:...... te \ Pipeline \ Pipeline.php(103):call_user_func(Object(Closure),Object(Illuminate \ Http \请求)) #19 C:\ wamp \ www \ dine \ vendor \ laravel \ framework \ src \ Illuminate \ Foundation \ Http \ Kernel.php(122):Illuminate \ Pipeline \ Pipeline-> then(Object(Closure)) (Illuminate \ Http \ Kernel.php)(87):Illuminate \ Foundation \ Http \ Kernel-> sendRequestThroughRouter(Object(Illuminate \ Http \ (): #21 C:\ wamp \ www \ dine \ public \ index.php(54):Illuminate \ –
这个错误在评论中不可读。您可以将它添加到您的伫列中,或者图片也可以使用。 –
created_at是订单表中的comlumn名称... –