我会在同一页面上添加几个分页按钮。这是我的页面:
目前我使用这样的knppaginator:
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$demandes,
$request->query->getInt('page', 1),
5
);
我尝试以这种方式使用knppaginator:
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$demandes,
$request->query->getInt('page', 1),
5
);
$paginator = $this->get('knp_paginator');
$paginationF = $paginator->paginate(
$forumTopics,
$request->query->getInt('page', 1),
5
);
但它不起作用。当我用一个页面更改页面时,它会更改另一个页面。
谢谢。
答案 0 :(得分:3)
我认为这是因为你使用相同的" page"两个分页的参数。试试这个
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$demandes,
$request->query->getInt('page', 1),
5
);
$paginationF = $paginator->paginate(
$forumTopics,
$request->query->getInt('otherPage', 1),
5,
['pageParameterName' => 'otherPage']
);
答案 1 :(得分:1)
这是因为,默认情况下,所有服务都是共享的。这意味着每次检索服务时,您都会获得相同的实例 - see reference。
但是,如果您将服务定义标记为不共享,则可以在服务定义中进行更改,因为文档正在提议:
# app/config/services.yml
services:
app.some_not_shared_service:
class: ...
shared: false
# ...
在您的情况下,您的服务名为knp_paginator
,来自其捆绑包。
因此,您只需更改自己的app/config/services.yml
即可使其服务不共享:
# app/config/services.yml
services:
knp_paginator:
shared: false