symfony - Symfony 4 - 使用 KnpPaginatorBundle 进行多分页渲染?
问题描述
我正在尝试在同一视图上呈现多个分页。
在我的模板中,我使用标签来分隔我的不同列表,但我希望它们每个都有自己的分页
目前我已经:
控制器.php
public function index(Request $request, PaginatorInterface $paginator)
{
$productsLines = $stripeAdmin->findAllProducts();
$products = $paginator->paginate(
$productsLines,
$request->query->getInt("page", 1),
1
);
$products->setTemplate("pagination/stripePagination.html.twig");
$couponsLines = $stripeAdmin->findAllCoupons();
$coupons = $paginator->paginate(
$couponsLines,
$request->query->getInt("page", 1),
1
);
$coupons->setTemplate("pagination/stripePagination.html.twig");
return $this->render('stripe_admin/index.html.twig', [
"products" => $products,
"coupons" => $coupons,
]);
}
模板.html.twig:
在每个选项卡中,我都有这个:
产品标签:
<div class="navigation">
{{knp_pagination_render(products)}}
</div>
优惠券标签:
<div class="navigation">
{{knp_pagination_render(coupons)}}
</div>
但最后我只有一个被渲染的。
有解决办法吗?
解决方案
对于希望在同一页面中使用相同模板但具有不同查询参数的任何人,我找到了此解决方案并成功对其进行了测试。
/** pagination 1 */
$pagination1 = $paginator->paginate(
$queryContent1, /* query NOT result */
$request->query->getInt("page1", 1)/*page number*/,
10/*limit per page*/,
array(
'pageParameterName' => 'page1',
'sortFieldParameterName' => 'sort1',
'sortDirectionParameterName' => 'direction1',
)
);
/** pagination 2 */
$pagination2 = $paginator->paginate(
$queryContent2, /* query NOT result */
$request->query->getInt("page2", 1)/*page number*/,
10/*limit per page*/,
array(
'pageParameterName' => 'page2',
'sortFieldParameterName' => 'sort2',
'sortDirectionParameterName' => 'direction2',
)
);
return $this->render('folder/view.html.twig', array(
'list1' => $pagination1,
'list2' => $pagination2
));
在视图中:
{# first #}
{{ knp_pagination_render(list1) }}
{# second #}
{{ knp_pagination_render(list2) }}
推荐阅读
- asp.net-mvc - 如何通过使用 SignalR 和 ASP.NET MVC 5 将消息共享给特定客户端?
- android - React Native:生成apk文件
- google-cloud-platform - 无法访问 Google Cloud Composer Web UI,但 DAG 运行成功
- python - 是否有任何允许根据公司名称剪切文本的python函数?
- sql - 如何修复 SQL 服务器 JSON_VALUE 路径有“-”错误
- android - 如何避免每次在 build.gradle 中添加插件“kotlin-android-extensions”
- c - MSVC 和 linux 中的 malloc 函数在 cJSON 中不同
- list - 如何使用 JSON 数据调用 ListViewBuilder
- reactjs - 无法在新的 React 应用上安装 Material UI
- webauthn - 如何从 java 中的 attestationObject 中检索公钥