【问题标题】:Laravel - get records between two dates with ajaxLaravel - 使用ajax获取两个日期之间的记录
【发布时间】:2017-03-27 08:25:09
【问题描述】:

我使用 Laravel,我想获取两个日期之间的记录。在前端我使用 daterangepicker 并写:

$('#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', 'OrdersController@getOrders');

在 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() }}" />

如何通过 Laravel 和 jquery ajax 获取日期之间的记录?

【问题讨论】:

  • created_at 是订单表中的列名...

标签: php jquery ajax laravel post


【解决方案1】:

您可以使用whereBetween() 来获取日期之间的结果:

$orders = Auth::user()
            ->orders()
            ->whereBetween('created_at', [$start_date, $end_date])
            ->get();

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    对于查询,您可以这样做:

    $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\Request)) #19 C: \wamp\www\dine\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(122): Illuminate\Pipeline\Pipeline->then(Object(Closure)) #20 C:\wamp\www \dine\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(87): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request)) #21 C:\wamp \www\dine\public\index.php(54): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request)) #22 {main}
    • 该错误在 cmets 中不可读。您可以将其添加到您的问题中,或者图像也可以。
    猜你喜欢
    • 2019-03-14
    • 2012-10-17
    • 2013-04-16
    • 2016-08-04
    • 1970-01-01
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多