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