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



我被以下问题卡住了,

我使用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

如果我理解正确,您可以将多个字段传递给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:

搜索列(..$fields)

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

注意:如果您想使用查询引擎搜索数字列,然后您还可以传递这样的搜索列``

//mysql
->searchColumns(数组('id:char:255','first_name','last_name','address','email','age:char:254')

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

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

最新更新