【问题标题】:Elasticsearch with DataTables in Laravel 8在 Laravel 8 中使用 DataTables 进行 Elasticsearch
【发布时间】:2021-10-29 04:10:25
【问题描述】:

我在Laravel 中使用DataTables,并使用ajax 将动态数据放入其中。当我从 MySQL 获取数据时,它可以工作,但是当我从 Elasticsearch 获取数据时,它返回 ajax 错误。

DataTables warning: table id=htmkl5-extension - Ajax error. For more information about this error, please see http://datatables.net/tn/7

【问题讨论】:

  • 您是否按照错误消息中的说明进行操作?如果是这样,发生了什么?导致错误的 JSON 是什么?您可以edit 您的问题向我们展示 JSON 作为格式化文本(不是屏幕截图)。在浏览器控制台中向我们展示任何错误消息的文本(F12 访问)。也向我们展示 DataTable 定义。就目前而言,您的问题缺少社区帮助您所需的所有信息。
  • 别忘了接收tour 并阅读How to Ask 以获得更多指导。

标签: ajax laravel elasticsearch datatables


【解决方案1】:
  • 这是控制器功能:

     if ($request->ajax()) {
        $rawdata = Autorisation::searchByQuery(array('match' => 
          array('nom_autorisation' => 'Autorisation')));
    
         $data = new \Illuminate\Database\Eloquent\Collection($rawdata);
    
         return DataTables::of($data)
             ->addIndexColumn()
    
    
             ->addColumn('action', function ($data) {
    
                 $btns ='<div class="btn-group">
                      <button type="button" class="btn btn-dark btn-sm">Open</button>
                      <button type="button" class="btn btn-dark btn-sm dropdown-toggle dropdown-toggle-split" id="dropdownMenuReference1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" data-reference="parent">
                          <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-down"><polyline points="6 9 12 15 18 9"></polyline></svg>
                      </button>
                      <div class="dropdown-menu" aria-labelledby="dropdownMenuReference1">
                          <a class="dropdown-item" href="#">Action</a>
                          <a class="dropdown-item" href="admin/users/'.$data->id.'" class="edit">Edit</a>
                          <a class="dropdown-item" href="users/destroy/'.$data->id.'">Delete</a>
    
                      </div>
                  </div>';
    
                 return $btns;
             })
    
             ->rawColumns(['action'])
             ->make(true);
         }
    
  • 这是脚本:

   <script>

    $('#html5-extension').DataTable( {
           
            processing:true,
            serverSide:true,
            ajax:{
                url:"{{route('autorisation')}}",
            },
            columns:[
                {
                    data: 'num_decret', name: 'num_decret'
                } ,
                {
                    data: 'nom_autorisation', name: 'nom_autorisation'
                },
                {
                    data: 'ministere_competent', name: 'ministere_competent'
                },

                {
                    data: 'action', name: 'action',
                    orderable:true,
                    searchable:true
                }
            ]
    });
<script>

【讨论】:

    猜你喜欢
    • 2019-06-09
    • 2021-12-04
    • 2021-09-27
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    • 2013-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多