Ich habe vier Entitäten: OfficialDocument
, Media
, NMediaStatus
und NMediaType
. Ich versuche, diese SQL zu übersetzen:"Invalid PathExpression. Muss eine StateFieldPathExpression sein" im Abfrage-Generator mit nicht verwandten Entitäten
SELECT od.media, od.type, od.status, md.url, nms.name
FROM official_document od
LEFT JOIN media md ON od.media = md.id
LEFT JOIN n_media_status nms ON od.status = nms.id
WHERE od.company = 9
zu Doctrine Query Builder und das ist das Ergebnis:
public function findOfficialDocument($company_id) {
$qb = $this->getEntityManager()->createQueryBuilder();
$qb->select('od.media', 'od.type', 'od.status', 'md.url', 'nms.name', 'nmt.name');
$qb->from('Company\RegisterCompanyBundle\Entity\OfficialDocument', 'od');
$qb->leftJoin('Common\MediaBundle\Entity\Media', 'md', \Doctrine\ORM\Query\Expr\Join::WITH, 'od.media = md.id');
$qb->leftJoin('Common\MediaBundle\Entity\NMediaStatus', 'nms', \Doctrine\ORM\Query\Expr\Join::WITH, 'od.status = nms.id');
$qb->leftJoin('Common\MediaBundle\Entity\NMediaType', 'nmt', \Doctrine\ORM\Query\Expr\Join::WITH, 'od.type = nmt.id');
$qb->where('od.company = ?1');
$qb->setParameter(1, $company_id);
return $qb->getQuery()->getResult();
}
Aber jedes Mal, wenn ich die Funktion von meinem Controller nenne ich bekomme diese Fehlermeldung:
[Semantical Error] line 0, col 10 near 'media, od.type,': Error: Invalid PathExpression. Must be a StateFieldPathExpression.
[1/2] QueryException: SELECT od.media, od.type, od.status, md.url, nms.name, nmt.name FROM Company\RegisterCompanyBundle\Entity\OfficialDocument od LEFT JOIN Common\MediaBundle\Entity\Media md WITH od.media = md.id LEFT JOIN Common\MediaBundle\Entity\NMediaStatus nms WITH od.status = nms.id LEFT JOIN Common\MediaBundle\Entity\NMediaType nmt WITH od.type = nmt.id WHERE od.company = ?1
OfficialDocument
ist im Zusammenhang mit den anderen drei Einheiten, aber da ich die reversedBy
in diesen Unternehmen nicht brauche dann hart ich das den Fehler verursacht, oder vielleicht auch nicht, nicht su re darüber. Wie auch immer, irgendein Rat oder Hilfe, um dieses Problem zu beheben?
PS: Ich bin mit neuester Symfony2 und Doctrine2 wenn Sie einen Blick auf meine Entitäten hier nehmen müssen sie sind: OfficialDocument, Media, NMediaStatus, NMediaType
Ich möchte Objekt Objekt z. B. auswählen. Medien, geben Sie statt FK IDs, was dann zu tun? –