Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]custom repository jako usługa i KnpPaginator w Symfony
Forum PHP.pl > Forum > Przedszkole
porzeczki
Czy komuś rzuca się w oczy coś złego z poniższego?

kontroler:
  1. $this->get('app.ksiazka_repository')->findAllMy('1');


services.yml:
  1. app.ksiazka_repository:
  2. class: AppBundle\Repository\KsiazkaRepository
  3. tags:
  4. - { name: knp_paginator.injectable, paginator: '@knp_paginator' }


repository.php:
  1. class KsiazkaRepository extends EntityRepository implements PaginatorAwareInterface
  2. {
  3. protected $paginator;
  4.  
  5. public function queryAll()
  6. {
  7. return $this->getEntityManager()
  8. ->createQuery('
  9. SELECT a
  10. FROM AppBundle:Ksiazka a
  11. ');
  12. }
  13.  
  14. public function findAllMy($page)
  15. {
  16. $pagination = $this->paginator->paginate(
  17. $this->queryAll(),1,2
  18. );
  19. return $pagination;
  20. }
  21.  
  22. public function setPaginator(Paginator $paginator)
  23. {
  24. $this->paginator = $paginator;
  25. }



bo dostaję
Cytat
Warning: Missing argument 1 for Doctrine\ORM\EntityRepository::__construct(), called in C:\wamp64\www\Szobuk2\app\cache\dev\appDevDebugProjectContainer.php on line 360 and defined
kapslokk
Chyba powinieneś w services.yml zdefiniować, żeby do repository wstrzykiwalo entity managera. Google -> symfony inject entity manager into service
porzeczki
Cytat(kapslokk @ 3.10.2016, 14:11:14 ) *
powinieneś w services.yml zdefiniować, żeby do repository wstrzykiwalo entity managera. Google -> symfony inject entity manager into service

chyba masz rację (chyba, bo teraz mam inny błąd niezwiązany z tematem, ale chyba poszło naprzód)

Ale dlaczego masz rację skoro klasa repository
  1. extends EntityRepository
i
  1. $this->getEntityManager()
kapslokk
$this->getEntityManager() to tak na prawde zwykły getter - https://github.com/doctrine/doctrine2/blob/...sitory.php#L263 , zebys mial tam entity manager musisz go wstrzyknąć - przekazac w parametrze do konstruktora klasy EntityRepository.
porzeczki
ok, dziękuję.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.