Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]użycie metody Doctrine\ORM\EntityRepository::find() powoduje Exception Call to a member function find() on null
Forum PHP.pl > Forum > Przedszkole
porzeczki
Może komuś rzuci się w oczy co robię źle.


  1.  
  2. // Kontroler. I linia która wywołuje wyjątek
  3. $zamowienie= $this->getDoctrine()
  4. ->getRepository('AppBundle:Zamowienie')
  5. ->find($id);




  1.  
  2. //Entity w którym deklaruję repository
  3. * @ORM\Entity(repositoryClass="AppBundle\Repository\ZamowienieRepository")
  4. */
  5. class Zamowienie

  1. //Repository z konstruktorem EntityManager
  2. class ZamowienieRepository extends EntityRepository{
  3. protected $em;
  4.  
  5. public function __construct(EntityManager $entityManager)
  6. {
  7. $this->em = $entityManager;
  8. }









kapslokk
masz

  1. protected $em;
  2.  
  3. public function __construct(EntityManager $entityManager)
  4. {
  5. $this->em = $entityManager;
  6. }


a find() chce z podkreślnikiem. Dodaj go.
Albo najlepiej wywal ten konstruktor, bo nie jest do niczego potrzebny.
porzeczki
Metoda find() jest wbudowana z klasę Doctrine\ORM\EntityRepository. Ja klasę ZamowienieRepository używam dla metod zdefiniowanych przeze mnie. No ale co to obchodzi metodę EntityRepository::find() ?
kapslokk
  1. class ZamowienieRepository extends EntityRepository{


ZamowienieRepository rozszerza klase EntityRepository, wiec jej metody masz w ZamowienieRepository. W ZamowienieRepository nadpisales konstruktor EntityRepository i teraz nie ma wymaganych propertiesow. Wywal swoj konstruktor i bedziesz mial po problemie. Jesli w ZamowienieRepository potrzebujesz uzyc EntityManagera mozesz zrobic $this->_em;
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.