Générateur de requêtes / DQL de ne pas travailler avec INNER JOIN - Syntaxe Problème

Je sais que j'ai une syntaxe isse ici, cependant je ne peux pas le comprendre. Je suis en train de faire une sélection et d'une JOINTURE INTERNE de 5 tables mais Symfony est de se plaindre sur les Entités de la JOINTURE sont utilisés avant d'être défini.

Erreur réelle est comme suit: [Semantical Error] line 0, col 121 near 'I ON C.id = ': Error: Identification Variable MySiteBundle:Items used in join path expression but was not defined before.

Voici le code PHP.

Remarque: j'ai raccourcie cette requête à deux colonnes, deux tables, l'une se joindre à garder la question simple et de montrer mon point de vue. La requête réelle est beaucoup plus et est produit la même erreur.

$em = $this->getDoctrine()->getEntityManager();
$query = $em->createQuery(
    'select C.name as CName, I.id as IId
    FROM MySiteBundle:Categories C
    INNER JOIN MySiteBundle:Items I ON C.id = I.category_id');
$result = $query->getResult();

Mise à jour

Comme l'a suggéré, j'ai fait disparaître le DQL code, et j'en utilisant le Générateur de Requêtes de code. Je suis un très similaire d'erreur qui dit 'Categories c': Error: Class 'Categories' is not defined. Mon QB code est ci-dessous.

$em = $this->getDoctrine()->getEntityManager();
$qb = $em->createQueryBuilder()
        ->select('c.name, i.id, i.image, i.name, i.description, m.id, m.quantity, m.value, m.qty_received, m.custom_image, m.custom_name, m.custom_description, u.user1fname, u.user1lname, u.user2fname, u.user2lname')
        ->from('Categories', 'c')
        ->innerJoin('Items', 'i', 'ON', 'c.id = i.category_id')
        ->innerJoin('MemberItems', 'm', 'ON', 'i.id = m.item_id')
        ->innerJoin('User', 'u', 'ON', 'm.memberinfo_id = u.id')
        ->where('u.id = ?', $slug)
        ->orderBy('c.id', 'ASC')
        ->getQuery();

$memberItems = $qb->getResult();

Des suggestions?

OriginalL'auteur ElasticThoughts | 2012-02-22