Cakephp 3.x Crud 插件 beforeFind 事件不可用
Cakephp 3.x Crud plugin beforeFind event not available
我有一个使用 CRUD 插件的 Cakephp 3.x API。
这是我的 crud 配置:
$this->loadComponent('Crud.Crud', [
'actions' => [
'Crud.Index',
'Crud.View',
'Crud.Add',
'Crud.Edit',
'Crud.Delete'
],
'listeners' => [
'Crud.Api',
'Crud.ApiPagination',
'Crud.ApiQueryLog'
]
]);
在我的控制器中,当我调用 this->Crud->implementedEvents() 时 returns beforeFilter startuperxot beforePaginate only
public function index(){
$this->Crud->implementedEvents(); //returns beforeFilter startuperxot beforePaginate
$this->Crud->on('beforeFind', function(\Cake\Event\Event $event) {
if(isset($this->request->query['state'])){
$event->getSubject()->query->where(['state =' => $this->request->query['state']]);
}
});
return $this->Crud->execute();
}
如何启用 beforeFind 侦听器?提前致谢。
你应该在索引
上使用beforePaginate
https://crud.readthedocs.io/en/latest/actions/index.html#crud-beforepaginate
我有一个使用 CRUD 插件的 Cakephp 3.x API。 这是我的 crud 配置:
$this->loadComponent('Crud.Crud', [
'actions' => [
'Crud.Index',
'Crud.View',
'Crud.Add',
'Crud.Edit',
'Crud.Delete'
],
'listeners' => [
'Crud.Api',
'Crud.ApiPagination',
'Crud.ApiQueryLog'
]
]);
在我的控制器中,当我调用 this->Crud->implementedEvents() 时 returns beforeFilter startuperxot beforePaginate only
public function index(){
$this->Crud->implementedEvents(); //returns beforeFilter startuperxot beforePaginate
$this->Crud->on('beforeFind', function(\Cake\Event\Event $event) {
if(isset($this->request->query['state'])){
$event->getSubject()->query->where(['state =' => $this->request->query['state']]);
}
});
return $this->Crud->execute();
}
如何启用 beforeFind 侦听器?提前致谢。
你应该在索引
上使用beforePaginate
https://crud.readthedocs.io/en/latest/actions/index.html#crud-beforepaginate