Mam projekt w Symfony2, który działa. Chcę do niego dodać nową encję. Stworzyłem tabelę w bazie danych i stworzyłem plik Flag.php, który ma początek:
namespace Ex\CaBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** * Ex\CaBundle\Entity\Flag * * @ORM\Table(name="Flag") * @ORM\Entity(repositoryClass="Ex\CaBundle\Entity\FlagRepository") */ class Flag {
Dalej są pola jak w bazie + gettery/settery.
Dodałem również plik FlagRepository.php:
namespace Ex\CaBundle\Entity; use Doctrine\ORM\EntityRepository; class FlagRepository extends EntityRepository { public function getFlags() { $q = $this->createQueryBuilder('f') ->getQuery() ->getResult(); return $q; } }
Teraz w kontrolerze chcę pobrać wszystkie rekordy z tabeli Flag w bazie korzystając z funkcji getFlags:
$flags = $this->getDoctrine()->getRepository('ExCaBundle:Flag')->getFlags();
Niestety otrzymuję błąd 500. Nie wiem, czy błąd jest w funkcji getFlags, czy nie widoczny jest plik FlagRepository?
Czy muszę coś dodawać w jakiś plikach konfiguracyjnych? Generować? Pliki dodałem ręcznie.
Jak zrobię:
$flags = $this->getDoctrine()->getRepository('ExCaBundle:Flag')->findAll();
To otrzymam wyniki, pobierze rekordy z bazy. Ale chcę użyć swojej funkcji.