Dodanie nowej encji do projektu,

0

Cześć,

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;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * 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.

0

Zobacz to:
http://doctrine-orm.readthedocs.org/en/latest/reference/working-with-objects.html#custom-repositories

W Twoim przykładzie brakuje $this->em

Natomiast obawiam się, że coś jeszcze może być źle. Nie powinno być błędu 500 z tego powodu. Może być coś w konfiguracji serwera?

[Adrian]

1 użytkowników online, w tym zalogowanych: 0, gości: 1