在 symfony 4 中使用 KnpPaginatorBundle 进行分页 [英] pagination in symfony 4 using KnpPaginatorBundle

查看:24
本文介绍了在 symfony 4 中使用 KnpPaginatorBundle 进行分页的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尝试从命名空间App\Knp\Bundle\PaginatorBundle"加载类KnpPaginatorBundle".您是否忘记了Knp\Bundle\PaginatorBundle\KnpPaginatorBundle"的use"语句?

解决方案

解决方案是创建一个新的存档 paginator.yaml

//config/paginator.yamlknp_分页器:page_range: 5 #rango por defo de paginas en los controles del paginador默认选项:page_name: page # nombre del parámetro de la URL para la páginasort_field_name: sort # nombre del parámetro de la URL para la ordenaciónsort_direction_name: 方向# nombre del parámetro de la URL para la dirección(ASC o DESC)distinct: true # Garantizar resultados distintos模板:分页:'@KnpPaginator/Pagination/sliding.html.twig' # 植物控制可排序:KnpPaginatorBundle:Pagination:sortable_link.html.twig # Plantilla links ordenación

在Controller中添加extends Controller之后

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',数组('分页' => $分页));}

最后在archive.yml

中添加这个

参考:https://github.com/KnpLabs/KnpPaginatorBundle/issues/468#issuecomment-356580135

Attempted to load class "KnpPaginatorBundle" from namespace "App\Knp\Bundle\PaginatorBundle". Did you forget a "use" statement for "Knp\Bundle\PaginatorBundle\KnpPaginatorBundle"?

解决方案

The solution is create a new archive 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

After in the Controller add extends Controller in the class

<?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));

    }

Finally add this in the archive.yml

<div class="navigation">
  {{ knp_pagination_render(pagination) }}
</div>

Reference: https://github.com/KnpLabs/KnpPaginatorBundle/issues/468#issuecomment-356580135

这篇关于在 symfony 4 中使用 KnpPaginatorBundle 进行分页的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆