Php 同一页中的多个symfony分页

Php 同一页中的多个symfony分页,php,symfony,pagination,Php,Symfony,Pagination,我会在同一页上添加几个分页按钮。这是我的页面: 目前我使用的knppaginator如下: $paginator = $this->get('knp_paginator'); $pagination = $paginator->paginate( $demandes, $request->query->getInt('page', 1), 5 ); 我尝试以以下方式使用knppaginator: $pa

我会在同一页上添加几个分页按钮。这是我的页面:

目前我使用的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
    );
但它不起作用。当我用一个页面更改页面时,它会更改另一个页面的页面


谢谢。

这是因为默认情况下,所有服务都是共享的。这意味着每次检索服务时,都会得到相同的实例-

但是,如果您将服务标记为“非共享”,则可以在服务定义中更改,正如文档所建议的:

# app/config/services.yml
services:
    app.some_not_shared_service:
        class: ...
        shared: false
        # ...
在您的情况下,您的服务被称为
knp\u paginator
,来自他们的捆绑包

因此,您只需更改自己的
app/config/services.yml
即可使其服务成为非共享服务:

# app/config/services.yml
services:
    knp_paginator:
        shared: false

这是因为,默认情况下,所有服务都是共享的。这意味着每次检索服务时,都会得到相同的实例-

但是,如果您将服务标记为“非共享”,则可以在服务定义中更改,正如文档所建议的:

# app/config/services.yml
services:
    app.some_not_shared_service:
        class: ...
        shared: false
        # ...
在您的情况下,您的服务被称为
knp\u paginator
,来自他们的捆绑包

因此,您只需更改自己的
app/config/services.yml
即可使其服务成为非共享服务:

# app/config/services.yml
services:
    knp_paginator:
        shared: false

我认为这是因为两种分页都使用相同的“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']
    );

我认为这是因为两种分页都使用相同的“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']
    );

谢谢,我如何在我的案例中使用它?你应该在某个地方对你的服务有一个定义:
knp_paginator
在那里,你应该能够添加
shared:false
参数$paginator=$this->get('app.some_not_shared_service')$分页=$paginator->paginate($demandes,$request->query->getInt('page',1),5)$paginator=$this->get('app.some_not_shared_service')$paginationF=$paginator->paginate($forumTopics,$request->query->getInt('page',1),1);谢谢,我如何在我的案例中使用它?你应该在某个地方对你的服务有一个定义:
knp_paginator
在那里,你应该能够添加
shared:false
参数$paginator=$this->get('app.some_not_shared_service')$分页=$paginator->paginate($demandes,$request->query->getInt('page',1),5)$paginator=$this->get('app.some_not_shared_service')$paginationF=$paginator->paginate($forumTopics,$request->query->getInt('page',1),1);排序如何?@iamjc015可用选项正在使用
'sortFieldParameterName'=>'otherSort'
。排序如何?@iamjc015可用选项正在使用
'sortFieldParameterName'=>'otherSort'