无法使用Chumper Datatables和Laravel应用单个列搜索

时间:2014-08-28 19:54:44

标签: laravel-4 jquery-datatables blade

我被困在以下,

我正在使用Chumper / datatable来使用PHP Laravel显示来自MySQL数据库的数据。

如上所述,我创建了两条路线,一条用于向用户提供视图,另一条用于数据表数据:

Route::resource('users', 'UsersController');
Route::get('api/users', array('as'=>'api.users', 'uses'=>'UsersController@getDatatable'));

然后控制器

public function getDatatable()
{
    return Datatable::collection(User::all(array('id','name', 'address')))
    ->showColumns('id', 'name', 'address')
    ->searchColumns('name')
    ->orderColumns('id','name')
    ->make();
}

并在刀片页面中

@extends ('layouts.main')

@section('content')
  <h2>Users</h2>
  <div id="User">

  {{ Datatable::table()
     ->addColumn('id', 'name', 'address')
     ->setUrl(route('api.users'))
     ->render() 
  }}

  </div>

@stop

问题在于我无法找到应用单个列搜索(选择输入)和搜索所有3列的方法。

谢谢 / magefi

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您可以将多个字段传递给searchColumns()

<强>控制器:

->searchColumns(array('id:char:255', 'first_name', 'last_name', 'address', 'email', 'age:char:255'))

<强>封装
vendor/chumper/datatable/src/Chumper/Datatable/Engines/BaseEngine.php

的第237行
      237:     public function searchColumns($cols)
      238      {
      239          if ( ! is_array($cols))
                       ....

来自README.md:

  

<强> searchColumns(.. $字段)

     

将使表格仅允许在给定列中进行搜索。   请注意,集合的行为与构建器对象不同。

     

注意:如果要使用查询引擎搜索数字列,   那么你也可以传递一个像这样的``

的搜索栏       // MySQL的
       - &gt; searchColumns(数组(&#39; id:字符:255&#39;,&#39; first_name&#39;,&#39; last_name&#39;,&#39;地址&#39;,&#39; ;电子邮件&#39;,&#39;年龄:字符:255&#39;))

//postgree
->searchColumns(array('id:text', 'first_name', 'last_name', 'address', 'email', 'age:text'))  ```
     

这将在搜索时将列转换为给定类型的列   列