Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]custom repository jako usługa i KnpPaginator w Symfony
porzeczki
post 3.10.2016, 13:00:55
Post #1





Grupa: Zarejestrowani
Postów: 144
Pomógł: 0
Dołączył: 15.09.2016
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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


Ten post edytował porzeczki 3.10.2016, 13:17:24
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
kapslokk
post 3.10.2016, 13:11:14
Post #2





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Chyba powinieneś w services.yml zdefiniować, żeby do repository wstrzykiwalo entity managera. Google -> symfony inject entity manager into service
Go to the top of the page
+Quote Post
porzeczki
post 3.10.2016, 13:32:23
Post #3





Grupa: Zarejestrowani
Postów: 144
Pomógł: 0
Dołączył: 15.09.2016
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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()


Ten post edytował porzeczki 3.10.2016, 13:32:50
Go to the top of the page
+Quote Post
kapslokk
post 3.10.2016, 13:36:08
Post #4





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


$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.

Ten post edytował kapslokk 3.10.2016, 13:37:29
Go to the top of the page
+Quote Post
porzeczki
post 3.10.2016, 13:36:45
Post #5





Grupa: Zarejestrowani
Postów: 144
Pomógł: 0
Dołączył: 15.09.2016
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


ok, dziękuję.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 02:37