cakephp CRUD:在索引操作中添加WHERE条件

2mbi3lxu  于 2022-11-11  发布在  PHP
关注(0)|答案(1)|浏览(123)

我正在研究CRUD文档,但不知怎么的,我错过了重点。我想在index()操作中实现不同的WHERE条件,这取决于我从URL中获得的一些参数。
阅读https://crud.readthedocs.io/en/latest/events.html对我没有什么帮助。我在index()函数中尝试了以下非常简单的代码:

public function index()
{
    $this->Crud->on('beforeFilter', function(\Cake\Event\EventInterface $event) {
        $event->getSubject()->query->where([ "partner_type" => "AGENT" ]);
    });

    return $this->Crud->execute();
}

这意味着,index操作的每次调用都应添加WHERE条件partner_type = 'AGENT',并仅返回那些行,但会返回所有行。
我误解了什么?

k4ymrczo

k4ymrczo1#

正确的事件是beforePaginate-请参阅Github处的答案:

public function index()
{
    $this->Crud->on('beforePaginate', function(\Cake\Event\EventInterface $event) {
        $event->getSubject()->query->where([ "partner_type" => "AGENT" ]);
    });

    return $this->Crud->execute();
}

相关问题