laravel - 如何在 Backpack for Laravel 中启用过滤器?
问题描述
我正在查看文档页面:https ://backpackforlaravel.com/docs/4.1/crud-filters 。
一个简单的问题是:我必须在哪里打电话$this->crud->filters()
?我试图在我的控制器的末尾添加setupListOperation()
,但我没有在我的表格上看到过滤器。出于好奇:我将 esit 的调用分配给 var 并将其转储,这是一个空集合。
protected function setupListOperation()
{
CRUD::setFromDb(); // columns
CRUD::column('assignmentTypes')->type('relationship');
/**
* Columns can be defined using the fluent syntax or array syntax:
* - CRUD::column('price')->type('number');
* - CRUD::addColumn(['name' => 'price', 'type' => 'number']);
*/
dd($this->crud->filters()); // <<<<------------- EMPTY COLLECTION!
}
请注意,手动添加过滤器有效!
$this->crud->addFilter([
'type' => 'text',
'name' => 'first_name',
'label' => 'First Nane'
], false,
function ($value) { // if the filter is active
$this->crud->addClause('where', 'first_name', 'LIKE', "%$value%");
}
);
但我问你为什么filters()
不自动做某事。
解决方案
您可以使用$this->crud->filters()
或CRUD::filters()
在任何您喜欢的地方使用它,但最有意义的是setupListOperation()
像您一样使用它,但在您已经添加了一些过滤器之后。在addFilter()
语句之前,结果是一个空集合,因为没有过滤器。
如果您将背包过滤器添加到列表操作,则会自动启用背包过滤器。
推荐阅读
- react-native - React Native - Stack Navigator - 将堆栈传递给 API
- javascript - Laravel - DataTables 警告:表 id=userTable - 无效的 JSON 响应(此请求没有可用的响应数据)
- laravel - Laravel 工厂深度嵌套关系失败
- flutter - 在flutter-中获取方法的buildContext-作为参数或使用globalKey的currentContext
- javascript - 如何从每一行的输入中单独填充模态?
- c - 如何访问由 void 指针指向的链表
- c# - Outlook 无法打开 s/mime 签名的邮件
- python - 在cupy中不需要时尝试numpy转换
- ios - 轻量级和重量级迁移期间核心数据崩溃
- wordpress - 在 wordpress 中制作“滚动”地图