使用KnpPaginatorBundle在symfony 4中分页
试图从命名空间“使用KnpPaginatorBundle在symfony 4中分页,symfony,symfony-forms,symfony-2.1,symfony4,Symfony,Symfony Forms,Symfony 2.1,Symfony4,试图从命名空间“App\Knp\Bundle\PaginatorBundle”加载类“KnpPaginatorBundle”。您是否忘记了“Knp\Bundle\PaginatorBundle\KnpPaginatorBundle”的“use”语句 只需添加KnpPaginatorBundle的类名称空间: 在config/bundles.php中: <?php return [ Symfony\Bundle\FrameworkBundle\FrameworkBundle:
App\Knp\Bundle\PaginatorBundle
”加载类“KnpPaginatorBundle
”。您是否忘记了“Knp\Bundle\PaginatorBundle\KnpPaginatorBundle
”的“use
”语句
只需添加
KnpPaginatorBundle
的类名称空间:
在config/bundles.php
中:
<?php
return [
Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true],
***************************************************************
***************************************************************
Knp\Bundle\PaginatorBundle\KnpPaginatorBundle::class => ['all' => true]
];
您忘了在内核中添加Bundle,就在config/bundles.php
Knp\Bundle\PaginatorBundle\KnpPaginatorBundle::class => ['all' => true]
解决方案是创建一个新的存档paginator.yaml
//config/paginator.yaml
knp_paginator:
page_range: 5 # rango por defecto de paginas en los controles del paginador
default_options:
page_name: page # nombre del parámetro de la URL para la página
sort_field_name: sort # nombre del parámetro de la URL para la ordenación
sort_direction_name: direction # nombre del parámetro de la URL para la dirección(ASC o DESC)
distinct: true # Garantizar resultados distintos
template:
pagination: '@KnpPaginator/Pagination/sliding.html.twig' # plantilla controles
sortable: KnpPaginatorBundle:Pagination:sortable_link.html.twig # plantilla links ordenación
在控制器中添加后,在类中扩展控制器
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Routing\Annotation\Route;
use App\Entity\Usuario;
use App\Form\UsuarioType;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
/**
* @Route("/admin/usuarios")
*/
class BackendController extends Controller
{
/**
* @Route("/", name="admin")
*/
public function index(Request $request)
{
$usuarios = $this->getDoctrine()
->getRepository(Usuario::class)
->findAll();
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$usuarios, $request->query->getInt('page', 1), 20);
return $this->render('backend/usuario/index.html.twig',
array('pagination' => $pagination));
}
参考:图像链接?不用了,谢谢。用2.1和4标记问题?很不寻常。错误消息本身会告诉您它到底出了什么问题以及如何修复。很抱歉,我刚开始使用symfony一周,所以我使用了use语句,但如果您可以查看图像以查看我的控制器和其他页面,则不会有任何更改。单击随机发布的图像对您来说是个好主意吗?我猜问题出在config/bundles.php中,因为这是我能想到的唯一一个你可以引用KnpPaginatorBundle
-类的地方。如果不是这样的话,在您使用类KnpPaginatorBundle
的src/文件夹中搜索,并检查use语句是否在文件顶部的列表中。不,不是真的,但当我们使用KnpPaginatorBundle时,我们使用相同的类,所以我尝试以任何方式显示我在KnpPaginatorBundle说明中使用的代码,而不是图像问题问题是sirin Symfony4中的分页新捆绑包会自动添加到配置文件中!它可以在没有create archive.yml的情况下工作,您没有说我们需要在哪里添加它。当然,帮助全文:
<div class="navigation">
{{ knp_pagination_render(pagination) }}
</div>