首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >symfony 4中使用KnpPaginatorBundle的分页

symfony 4中使用KnpPaginatorBundle的分页
EN

Stack Overflow用户
提问于 2018-08-20 03:26:24
回答 3查看 3.6K关注 0票数 2

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-12-13 06:26:17

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

代码语言:javascript
复制
//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

在控制器中之后,在类中添加extends Controller

代码语言:javascript
复制
<?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));

    }

最后,将此代码添加到archive.yml

代码语言:javascript
复制
<div class="navigation">
  {{ knp_pagination_render(pagination) }}
</div>

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

票数 2
EN

Stack Overflow用户

发布于 2018-08-20 15:16:53

只需添加KnpPaginatorBundle的类命名空间

config/bundles.php

代码语言:javascript
复制
<?php

return [
    Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
    Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true],
    ***************************************************************
    ***************************************************************
    Knp\Bundle\PaginatorBundle\KnpPaginatorBundle::class => ['all' => true]
];
票数 1
EN

Stack Overflow用户

发布于 2018-08-29 22:12:59

您忘记了在内核中添加包,完全是在config/bundles.php

代码语言:javascript
复制
Knp\Bundle\PaginatorBundle\KnpPaginatorBundle::class => ['all' => true]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51921117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档