在分页 CakePHP 的控制器中设置页码 4.x

Set page number in controller in pagination CakePHP 4.x

是否可以在控制器中以编程方式设置页码? 我在分页索引页上有一个搜索表单。 每次用户发送新搜索时,我都想将页码重置为 1。

在请求参数中有 'page' 当前编号,所以当我使用新的搜索条件对查询进行分页时,页码保持不变。我希望它是 1.

我试过在分页数组中设置页面:

$this->paginate = array(
                            'limit'=> 20,
                            'order'=> array('Productions.id' => 'desc'),
                            'contain'=> array(
                                    'Products'=>'Units',
                                    'Telephely',
                                    'Leccsapat'
                                ),
                            'recursive'=> -1,
                            'conditions'=>$conditions,
                            'page'=> 1,
                            );

没有成功。

我试过了

$this->paginate['offset']=0;

没有成功。

我也试过了

public function initialize(): void
    {
        parent::initialize();
        $this->loadComponent('Paginator');
    }
.
.
.
$this->Paginator->setConfig('page',1);

没有成功。 我可以在会话中保存搜索条件,然后使用 page:1 在控制器中重定向,但我更喜欢在分页中进行。

在控制器中尝试覆盖页码。不是很漂亮,但有效:

if ($this->getRequest()->is('post')) {
    $queryParams = $this->getRequest()->getQueryParams();
    $queryParams['page'] = 1;
    $this->setRequest($this->getRequest()->withQueryParams($queryParams));
}