Laravel 数据表过滤器不工作

Laravel Datatable Filters not working

我在 laravel 应用程序中使用 yajra 数据表。我的要求如下所述,

我有一个用户列表以及他们所在的团队。它将加载一个包含列 name/email/phone/team/user_status 的列表。我有一个下拉菜单,其中包含 user_status 列表作为其值。当我更改此下拉值时,on-change 事件应该会自动过滤列表。

这是我的代码: HTML 在我看来,

{!! Form::select('user_status', $status, null, ['class' => 'form-control']) !!}
<table id="user-info" class="table table-bordered table-hover" style="padding-top:10px;">
  <thead>
    <tr>
      <th>Name</th>
      <th>Email</th>
      <th>Phone</th>
      <th>Team</th>
      <th>Status</th>
    </tr>
  </thead>
  <tbody>
  </tbody>
</table>

用于数据表的 JS,

$(document).ready(function(){
  var oTable = $('#user-info').dataTable({
    "processing": true,
    "serverSide": true,
    "ajax": {
      "url":  MY-URL-HERE,
      "type": "GET",
      "error": function(reason) {
         console.log(reason);
      }
    },
    "paging": true,
    "lengthChange": true,
    "searching": false,
    "bInfo": true,
    "bFilter": true,
    "autoWidth": false,
    "dom": '<"top"f>rt<"bottom table-bottom"lpi>',
    "iDisplayLength":15,
    "lengthMenu": [[15, 30, 50, 75, 100, -1], [15, 30, 50, 75, 100, "All"]],
    "bSort": true,
    "ordering": true
  });

  $('#user_status').change( function() {
    oTable.fnFilter( $(this).val(),4);
  });
});

我的方法return数据到数据表,

$usersList = AppUser::join('teams as t', 't.id', '=', 'users.team_id')
                      ->where('users.pm_status', '!=', 'active')
                      ->select(DB::raw("CONCAT(users.user_fname,' ',users.user_lname) AS fullname"), 'users.email', 'users.phone', 't.team_name', 'users.user_status')->get();
return Datatables::of($usersList);

我的问题:它在页面加载时加载数据。但是当我更改下拉值时,过滤器似乎对我不起作用。

我终于找到了答案。实际上这是一个问题。
使用数据表时,我们的查询中不需要 get()。
所以,我的控制器中的查询应该如下所示,

$usersList = AppUser::join('teams as t', 't.id', '=', 'users.team_id')
                  ->where('users.pm_status', '!=', 'active')
                  ->select(DB::raw("CONCAT(users.user_fname,' ',users.user_lname) AS fullname"), 'users.email', 'users.phone', 't.team_name', 'users.user_status');
return Datatables::of($usersList);