Jquery 如何使用laravel在datatables中显示数据库中的记录

Jquery 如何使用laravel在datatables中显示数据库中的记录,jquery,laravel,datatables,Jquery,Laravel,Datatables,我使用的是Laravel5.8,有两天我在做一些搜索,以及如何检索和显示数据表中的数据,但没有结果 //这是我的控制器文件的一部分代码 namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Datatables; use Auth; use App\User; class UserController extends Controller

我使用的是Laravel5.8,有两天我在做一些搜索,以及如何检索和显示数据表中的数据,但没有结果

//这是我的控制器文件的一部分代码

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Datatables;


use Auth;
use App\User;

class UserController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */

public function __construct()
{
    $this->middleware('auth');
}

    public function index()
    {

         $user =Datatables::of(User::query())->make(true);

        return view('manage_users.index', ['users' => $user]);
    }

    /**
以及html页面和脚本的代码

<script src="//code.jquery.com/jquery-1.12.3.js"></script>
<script src="//cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js"></script>
<script
    src="https://cdn.datatables.net/1.10.12/js/dataTables.bootstrap.min.js"></script>
<link rel="stylesheet"
    href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<link rel="stylesheet"
    href="https://cdn.datatables.net/1.10.12/css/dataTables.bootstrap.min.css">

<link href="styles/vendor/AdminLTE/css/datatables/dataTables.bootstrap.css" rel="stylesheet" type="text/css" />
<link href="bower_components/datatables-responsive/css/dataTables.responsive.css" rel="stylesheet" type="text/css" />

<table id="table" class="table table-bordered table-striped dataTable">
  <thead>
      <tr>
        <th class="th-sm">ID</th>
        <th class="th-sm">Name</th>
        <th class="th-sm">Email</th>
        <th class="th-sm">Type user</th>

      </tr>
    </thead>
    <tbody>



  </tbody>
  <tfoot>
    <tr>
      <th>Id
      </th>
      <th>Name
      </th>
      <th>Email
      </th>
      <th>Type user
      </th>

    </tr>
  </tfoot>
</table>

<script>
         $(document).ready(function() {
    $('#table').DataTable( {
        "processing": true,
        "serverSide": true,
        "ajax": "../server_side/scripts/server_processing.php"
    } );
} );
         </script>

我得到的空表中有如下ajax错误:
DataTables警告:表id=表-Ajax错误。有关此错误的详细信息,请参阅您的操作有几处错误

您没有返回数据表 您尚未在jquery数据表上设置列 跟着这个

在你的控制器上

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Datatables;
use Auth;
use App\User;

class UserController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */

public function __construct()
{
    $this->middleware('auth');
}

    public function index()
    {

         $user =User::get();

        return view('manage_users.index', compact('user'));
    }


    public function returnAjaxData()
    {
         $users =User::get();
         return Datatables::of($users)->make(true);
     }
    /**
返回数据表后,在路由上设置ajax路由 使用get方法添加指向returnAjaxData函数的路由 在这之后,只需使用该路由在Jquery中获取数据即可 在下面 然后还要提到数据表jquery上的列,如下所示

<script>
$(document).ready(function() {
$('#table').DataTable( {
    "processing": true,
    "serverSide": true,
    "ajax": "url/route/to/returnAjaxData",
     "columns":[

    { "data": "id" },
    { "data": "name" },
    { "data": "email" },
    { "data": "type_user" },
} );
} );
</script>

将ajax url替换为ajax:/user,

我得到一个json响应,其中包含我在用户路由中需要的所有数据,但我的datatables在此路由中设置manage\u users/index为空。我得到一个包含我在用户路由中需要的所有数据的响应,默认情况下,当服务器端为true时,该响应如下所示,但是我的datatables是在这个路由管理用户/索引中设置的,它是空的。响应如下{draw:0,recordsTotal:10,recordsFiltered:10,data:[{id:23,name:oussama-AMMY-DRISS,email:admin1@gmail.com,用户类型:Administrator,创建时间:2019-04-01 10:49:32,更新时间:2019-04-09 16:17:47},{id:24,姓名:Responsible,电子邮件:responsable@gmail.com,用户类型:负责,创建地址:2019-04-01……}],输入:[]]最重要的是您需要返回数据表。请理解这一点。您正在返回视图并通过JQUERY调用它。以上仅作说明。此外,还需要指定列名以及在表中设置的表行。如果在该路由中设置了datatable,则需要更改索引路由并创建一个返回datatables的新路由。现在您正在返回带有用户数据的视图。您是否在ajax中更改了url?这就导致了returnAjaxData方法
Route::get('user', array('as' => 'get.user', 'uses' => 'UserController@returnAjaxData'));