【问题标题】:How to access json object/data in datatable server side processing in Laravel 5.2?如何在 Laravel 5.2 的数据表服务器端处理中访问 json 对象/数据?
【发布时间】:2017-05-15 20:48:21
【问题描述】:

我们在一个新项目中使用数据表,由于我们正在处理大量数据,我们正在使用数据表的服务器端处理。但现在我们正试图弄清楚如何获取所有数据通过数据表从服务器获取数据。当我使用自定义 HTTP 变量服务器端处理并查看返回的数据时,没有来自数据库的值。我如何访问数据?请帮忙。非常感谢。这是我的代码

javascript:

$('#table-prod-contents').DataTable({
              processing: true,
              serverSide: true,
              ajax: $.fn.dataTable.pipeline( {
                  url: '{{ url("postproductsdata") }}',
                  pages: 6000, // number of pages to cache
                  "data": function ( d ) {
                     console.log(d);
                  }
              } ),
              columns: [
                  {data: 'id', name: 'id'},
                  {data: 'category', name: 'category'},
                  {data: 'pharmaceutical', name: 'pharmaceutical'},
                  {data: 'description', name: 'description'},
                  {data: 'type', name: 'type'},
                  {data: 'unit', name: 'unit'},
                  {data: 'price', name: 'price'},
                  {data: 'created_at', name: 'created_at'},
              ],


          });

控制台、日志只显示下图所示的数据:

当我查看对象内部时,没有 id 的值。类似 id: 31

控制器.php

public function anyData()
{
    $conditionTxt = "Medical and Lab Supplies";

    $products = Product::where('category', 'ILIKE', '%'.$conditionTxt.'%')
                        ->orderBy('created_at', 'desc')
                        ->get();

    return Datatables::of($products)->make(true);

}

【问题讨论】:

    标签: javascript jquery json datatables laravel-5.2


    【解决方案1】:

    选项ajax.data 允许定义函数以在数据发送 到服务器之前对其进行操作。

    您可以使用ajax.dataSrc 来访问从服务器接收的数据,但是您也使用pipelining 不允许这样做。

    使用drawCallback 选项和ajax.json() API 方法来访问检索到的数据或createdRow 选项或xhr.dt 事件。

    例如:

    $('#table-prod-contents').DataTable({
        processing: true,
        serverSide: true,
        ajax: $.fn.dataTable.pipeline( {
            url: '{{ url("postproductsdata") }}',
            pages: 6000, // number of pages to cache
            "data": function ( d ) {
               console.log(d);
            }
        } ),
        drawCallback: function(settings){
           var api = this.api();
    
           console.log(api.ajax.json());
        },
        columns: [
            {data: 'id', name: 'id'},
            {data: 'category', name: 'category'},
            {data: 'pharmaceutical', name: 'pharmaceutical'},
            {data: 'description', name: 'description'},
            {data: 'type', name: 'type'},
            {data: 'unit', name: 'unit'},
            {data: 'price', name: 'price'},
            {data: 'created_at', name: 'created_at'},
        ],
    });
    

    【讨论】:

      猜你喜欢
      • 2013-09-28
      • 1970-01-01
      • 1970-01-01
      • 2016-06-21
      • 2016-05-04
      • 2014-10-06
      • 2020-12-22
      相关资源
      最近更新 更多