Partage
  • Partager sur Facebook
  • Partager sur Twitter

Paginator

Symfony 3 / ApiPLatform

    20 novembre 2019 à 16:19:59

    Bonjour,

    Je souhaite créer mon propre paginator sur Symfony.

    J'ai créé ma class qui extends AbstractPaginator avec un construct la voici

    <?php
    
    
    namespace AppBundle\Utils;
    
    use ApiPlatform\Core\Bridge\Doctrine\Orm\AbstractPaginator;
    use Doctrine\ORM\Tools\Pagination\Paginator as DoctrinePaginator;
    
    class Paginator extends AbstractPaginator
    {
    
        /**
         * @var DoctrinePaginator
         */
        public $query;
    
        public function __construct(DoctrinePaginator $query)
        {
            $this->query = $query;
        }
    
        /**
         * {@inheritdoc}
         */
        public function getIterator()
        {
            $paginator = new Paginator($this->query);
            foreach ($paginator->getIterator() as $result) {
                return new \ArrayIterator();
            }
        }
    }

    et j'ai cette erreur :

    Compile Error: Declaration of AppBundle\Utils\Paginator::getIterator() must be compatible with ApiPlatform\Core\Bridge\Doctrine\Orm\AbstractPaginator::getIterator(): Traversable

    est ce que qq 1 serait me dire pourquoi ?

    par avance merci,


    • Partager sur Facebook
    • Partager sur Twitter
      20 novembre 2019 à 16:30:06

      Bonjour,

      Mauvais titre

      Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

      Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

      De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

      Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

      Pour modifier votre titre, éditez le premier message de votre sujet.

      (titre originel : Paginator)

      • Partager sur Facebook
      • Partager sur Twitter

      Pas d'aide concernant le code par MP, le forum est là pour ça :)

        20 novembre 2019 à 16:31:48

        Le code n'est même pas logique avec un return dans le foreach !

        S'il n'y a rien à itérer, tu retournes NULL (et non un Traversable).

        S'il y a plusieurs éléments, tu ne fais que t'arrêter sur le premier.

        Sinon public function getIterator() => public function getIterator(): \Traversable

        -
        Edité par julp 20 novembre 2019 à 16:39:31

        • Partager sur Facebook
        • Partager sur Twitter
          20 novembre 2019 à 17:00:24

          Merci Julp,

          le message est parti.

          • Partager sur Facebook
          • Partager sur Twitter

          Paginator

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown