javascript - 如何在 Laravel 5.2 中的数据表服务器端处理中访问 json 对象/数据?

标签 javascript jquery json datatables laravel-5

我们正在一个新项目中使用数据表,由于我们正在处理大量数据,我们正在使用数据表的服务器端处理。但现在我们正在尝试找出如何获取所有数据通过数据表从服务器获取数据。当我使用自定义 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'},
              ],


          });

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

enter image description here

enter image description here

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

Controller .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);

}

最佳答案

选项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'},
    ],
});

关于javascript - 如何在 Laravel 5.2 中的数据表服务器端处理中访问 json 对象/数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41415077/

相关文章:

javascript - 过滤 2 个数组以在 React/JSX 中呈现一个值

javascript - 使用 onfocus 事件影响元素

python - 如何使用 python 将数据正确附加到 JSON

php - 未生成 Javascript cookie

javascript - 如何解决 JS/Jquery 动画代码流错误?

javascript - 如何在 javascript/node 中导入对象

javascript - Highcharts 饼图数据损坏

jquery - 新颖的 CSS 下拉菜单/Megamenu

javascript - 当日期格式无效时,按日期对 json 进行排序

javascript - JSON 返回不起作用