我被以下问题卡住了,
我使用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')) ```
这将在搜索时将列强制转换为给定类型列