yajra v8.x jquery datatables如何从laravel 5.5上的控制器接收集合

时间:2018-04-19 12:24:24

标签: laravel collections datatables yajra-datatable

1。 a.blade.php

submit a form 
action="a_1"
  1. web.php

    路由:: get(' a_1',' CodoController @ a_1');

  2. CodoController

     public function a_1(Request $request)
    {
         $search = $request->all();
         $result=DB:query()
                 ->select...
                 ->get();
    
      return view(b_1)
         ->with('result',$result);
     }
    
  3. b_1.blade.php

       <table class="table table-bordered" id="users-table">
            <thead>
                <tr>
                    <td>Id</td>
                    <td>Name</td>
                 </tr>
            </thead>
        </table>
    
    
    <script>
    $(function() {
        $('#users-table').DataTable({
            processing: true,
            serverSide: true,
            ajax:?????<-----How to write this place to receive the $result collection?
            columns: [
                { data: 'id', name: 'id' },
                { data: 'name', name: 'name' }
                ......
            ]
        });
    });
    

  4. 我不理解这个例子 enter image description here

    是Route :: class吗?可以在控制器上使用? 以及如何在ajax上编写脚本:????地点。 我尝试将这些写入Codocontroller

    use DataTables;
    
    public function a_1(Request $request)
    {
         $search = $request->all();
         $result=DB:query()
                 ->select...
                 ->get();
    
    Route::get('b_1', function() {
    
          return DataTables::collection($result)->toJson();
    });
    

    可以在控制器上路由写入吗?我得到的错误是

    Class Route cannot find.
    

    如果是正确的用法。

    下面的b_1.blade.php视图脚本如何接收集合?

        <script>
        $(function() {
            $('#users-table').DataTable({
                processing: true,
                serverSide: true,
                ajax:?????<-----How to write this place to receive the $result collection?
                columns: [
                    { data: 'id', name: 'id' },
                    { data: 'name', name: 'name' }
                    ......
                ]
            });
        });
    
    </script>
    

1 个答案:

答案 0 :(得分:0)

ajax属性中,基本上您只需设置ajax call参数即可获取您的信息。

例如

ajax: {
    url: my_url_path,
    data: function(d){
        d.param1 = some_val_1
        d.param2 = some_val_2
    },
}

其中URL是获取JSON数据的路由,data是请求参数。

上面的例子会创建一个这样的请求网址:

http://my_url_path?param1=some_val_1&param2=some_val_2

在你的情况下,它将类似于:

ajax: {
    url: '{{url("user-data")}}'
}