在分页 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));
}
是否可以在控制器中以编程方式设置页码? 我在分页索引页上有一个搜索表单。 每次用户发送新搜索时,我都想将页码重置为 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));
}