Laravel 8 [Yajra DataTable] - DataTables 警告:table id=userTable - JSON 响应无效

问题描述

我正在尝试使用 Laravel 中的 Yajra 包将数据库中的所有用户(状态为 = 1)数据显示到 DataTable 中,但它始终显示此错误:

DataTables 警告:table id=userTrashBin - JSON 响应无效。有关此错误的详细信息,请参阅 http://datatables.net/tn/1

当我检查响应(在开发者工具 > 网络选项卡中)时,它没有任何响应或显示 Failed to load response data

enter image description here

这是我在 UserController.php 中的 datatable()

public function datatable()
{
    $data = User::where('status','=',1)->get();
    
    return DataTables::of($data)
        ->addColumn('action',function($data){

        $url_edit = url('user/'.$data->id.'/edit');
        $url_deact = url('user/deactivateUser/'.$data->id);
        $url = url('user/'.$data->id);
        
        $view = "<a class = 'btn btn-primary' href = '".$url."' title = 'View'><i class = 'nav icon fas fa-eye'></i></a>";
        $edit = "<a class = 'btn btn-warning' href = '".$url_edit."' title = 'Edit'><i class = 'nav icon fas fa-edit'></i></a>";
        $delete = "<button data-url = '".$url_deact."' onclick = 'deleteData(this)' class = 'btn btn-action btn-danger' title = 'Deactivate'><i class = 'nav-icon fas fa-trash-alt'></i></button>";
        
        return $view."".$edit."".$delete; 
    })->editColumn('user_type',function($data){

        $dataUser = User::find($data->id)->first();
        $returnStr = "";

        if($dataUser->hasRole('A')){
            $returnStr = "Administrator";
        }else{
            $returnStr = "Employee";
        }

        return $returnStr;
    })
    ->rawColumns(['action'])
    ->make(true);
}

这是 index.blade.php 中的 脚本 文件:

$("#userTable").DataTable({
      responsive:true,processing:true,pagingType: 'full_numbers',stateSave:false,scrollY:true,scrollX:true,autoWidth: false,ajax:"{{ url('user/datatable') }}",columns:[
        {data:'first_name',name: 'first_name'},{data:'last_name',name: 'last_name'},{data:'email',name: 'email'},{data:'user_type',name: 'user_type'},{data:'action',name: 'action',searchable: true,sortable:true},]
    });

user/datatableweb.php路线

Route::get('user/datatable','UserController@datatable')->name('user/datatable')->middleware('role:A');

最后是 index.blade.php 所在的 userTable 文件:

<table id="userTable" class="table table-bordered table-striped" data-toggle = "table1_" style = "width: 100%;">
              <thead>
                <tr>
                  <th>First Name</th>
                  <th>Last Name</th>
                  <th>E-Mail Address</th>
                  <th>User Type</th>
                  <th>Action</th>
                </tr>
              </thead>
              
              <tfoot>
                <tr>
                  <th>First Name</th>
                  <th>Last Name</th>
                  <th>E-Mail Address</th>
                  <th>User Type</th>
                  <th>Action</th>
                </tr>
              </tfoot>
            </table>

我现在不知道是什么导致了错误以及如何修复它,因为它没有任何响应数据或其他错误可以给我提示。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...