首页 > 解决方案 > 配置键“page_range”分页

问题描述

经过几个小时的设置,我仍然有这个错误:

定义“knp_paginator”不支持配置键“page_range”

如果我将代码移到左侧,则会出现此错误:有时 yaml 无效,有时 knp_paginator 找不到我的文件 services.yaml

参数:

locale: 'en'

服务:

_defaults:
    autowire: true
    autoconfigure: true
    public: false

App\:
    resource: '../src/*'
    exclude: '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'


App\Controller\:
    resource: '../src/Controller'
    tags: ['controller.service_arguments']


knp_paginator:
  page_range: 5
  default_options:
    page_name: page
    sort_field_name: sort
    sort_direction_name: direction
    distinct: true
    filter_field_name: filterField
    filter_value_name: filterValue
  template:
    pagination: '@KnpPaginator/Pagination/sliding.html.twig'
    sortable: '@KnpPaginator/Pagination/sortable_link.html.twig'
    filtration: '@KnpPaginator/Pagination/filtration.html.twig'

和我的文件控制器

    /**
     * @var $paginator \Knp\Component\Pager\PaginatorInterface
    */
    $resultatEleves = $eleveRepository->findAll()  ;
    $paginator = $this->get('knp_paginator');

    $pagination = $paginator->paginate(
        $resultatEleves,
        $request->query->getInt('page', 1),
        $request->query->getInt('limit', 5)
    );

(...) 在第 79 行之后:

'eleves'=> $pagination,

标签: symfony

解决方案


首先,您不必将“knp_paginator”节点放到 services.yaml 中,您可以在配置目录中创建 knp_paginator.yaml,也可以添加到 config.yaml 中。你也不能传递 findAll 结果,你必须将查询传递给分页器。

您可以在 https://ourcodeworld.com/articles/read/802/how-to-install-the-knppaginatorbundle-to-paginate-doctrine-queries-in-symfony-4找到更多工作示例


推荐阅读