我一直在跟随教程,所有的指令都显示是按照同样的方式完成的,但在Symfony 4中似乎无法正常工作。我是否忽略了某些东西或者这个bundle根本不兼容?
我运行了:composer require knplabs/knp-paginator-bundle
由于Flex的自动加载,它被自动加载到bundles.php
中。
将以下内容插入到config/services.yaml
中:
knp_paginator:
page_range: 5 # default page range used in pagination control
default_options:
page_name: page # page query parameter name
sort_field_name: sort # sort field query parameter name
sort_direction_name: direction # sort direction query parameter name
distinct: true # ensure distinct results, useful when ORM queries are using GROUP BY statements
template:
pagination: KnpPaginatorBundle:Pagination:twitter_bootstrap_v3_pagination.html.twig # sliding pagination controls template
sortable: KnpPaginatorBundle:Pagination:sortable_link.html.twig # sort link template
尝试在控制器中使用以下内容:
$paginator = $this->get('knp_paginator');
您遇到了以下错误:
找不到服务"knp_paginator":尽管它存在于应用程序的容器中,但在"App\Controller\PhotoController"内部的容器是一个较小的服务定位器,只知道关于"doctrine"、"form.factory"、"http_kernel"、"request_stack"、"router"、"security.authorization_checker"、"security.token_storage"、"serializer"、"session"和"twig"服务。除非您需要额外的惰性加载,否则请尝试使用依赖注入。否则,您需要使用"PhotoController::getSubscribedServices()"声明它。