Разбивка на страницы в Symfony 4 с использованием KnpPaginatorBundle

Попытка загрузить класс «KnpPaginatorBundle» из пространства имен «App\Knp\Bundle\PaginatorBundle». Вы забыли заявление "use" для "Knp\Bundle\PaginatorBundle\KnpPaginatorBundle"?

Разбивка на страницы в Symfony 4 с использованием KnpPaginatorBundle

Разбивка на страницы в Symfony 4 с использованием KnpPaginatorBundle

Разбивка на страницы в Symfony 4 с использованием KnpPaginatorBundle

Разбивка на страницы в Symfony 4 с использованием KnpPaginatorBundle

Ссылки на изображения? Спасибо, не надо. Помечаете вопрос с помощью 2.1 и 4? Довольно необычно. Само сообщение об ошибке сообщает вам, что именно не так и как это исправить.

Cerad 19.08.2018 21:56

извините, я просто запускаю Symfony через неделю, поэтому я использую оператор use, но ничего не меняется, если вы можете проверить изображения, чтобы увидеть мой контроллер и другие страницы

Younes Oulkaid 19.08.2018 22:31

Кажется ли вам хорошей идеей нажимать на случайно размещенные изображения?

Cerad 19.08.2018 23:31

Я предполагаю, что проблема в config / bundles.php, потому что это единственное место, которое я могу придумать, где бы вы могли сослаться на класс KnpPaginatorBundle. Если это не так, выполните поиск в папке src /, где вы используете класс KnpPaginatorBundle, и проверьте, есть ли оператор use в списке вверху файла.

dbrumann 19.08.2018 23:40

нет, не совсем, но когда мы используем KnpPaginatorBundle, мы используем те же классы, поэтому я попытался показать код, который я использовал его же, в инструкциях KnpPaginatorBundle в любом случае, изображения не проблема, проблема в paginatin сэр

Younes Oulkaid 19.08.2018 23:42

Спасибо, dbrumann, я проверил ваше решение, но проблема с smae все еще не устранена. Вы раньше использовали KnpPaginatorBundle под Symfony 4?

Younes Oulkaid 19.08.2018 23:52

Вы можете показать нам содержимое вашего файла bundles.php?

Domagoj 20.08.2018 08:29
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
2
7
3 383
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Просто добавьте пространство имен классов 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]

в Symfony4 новые пакеты автоматически добавляются в файл конфигурации!

Sami 25.02.2019 09:38
Ответ принят как подходящий

Решение - создать новый архив 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

После в Контроллере добавляем extends Controller в класс

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

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

Ссылка: https://github.com/KnpLabs/KnpPaginatorBundle/issues/468#issuecomment-356580135

Он работает без создания archive.yml, о котором вы не сказали, куда нам нужно его добавить. Конечно справка на всю страницу: github.com/KnpLabs/KnpPaginatorBundle

bcag2 25.09.2020 17:11

Другие вопросы по теме