Abfrage-generator / DQL-funktioniert nicht mit INNER JOIN - Syntax Problem

Ich weiß, ich habe einen syntax isse hier, aber ich kann es herausfinden. Ich versuche eine SELECT-und INNER-JOIN 5 Tabellen, aber Symfony ist beschweren sich über die Entitäten, die im JOIN verwendet werden, bevor Sie definiert.

Eigentliche Fehler ist wie folgt: [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.

Hier ist der PHP-code.

Hinweis: habe ich gekürzt, dass diese Abfrage zwei Spalten zwei Tabellen, und eine Verknüpfung zu halten, die Frage einfach und zeigen, was ich meine. Die eigentliche Abfrage viel mehr und produziert den gleichen Fehler.

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

Update

Wie vorgeschlagen habe ich getan, Weg mit der DQL-code und bin mithilfe von Query Builder-code. Ich bin immer eine sehr ähnliche Fehlermeldung, die sagt 'Categories c': Error: Class 'Categories' is not defined. Meine QB-code ist unten.

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

Irgendwelche Vorschläge?

Schreibe einen Kommentar