Doctrine query builder, wählen Sie die Option foreign key
Ich habe diese Abfrage :
$qb = $this->_em->createQueryBuilder();
$qb->select('DISTINCT c.account')
->from('ThanksWhoProjectBundle:Comment', 'c')
->leftjoin('c.account', 'a')
->where('c.conversation = ?1')
->setParameters(array(1 => $conversation));
return $qb->getQuery()->getResult();
So, das Feld Comment.account
ist ein Fremdschlüssel, der mit meiner Person Account
. Ich brauche nur zu rufen, verschiedenen Konten, die in das Gespräch.
So, ich will nur markieren Sie das Feld c.account
, aber mit dieser Abfrage diesen Fehler :
[Semantical Error] line 0, col 18 near 'account FROM': Error: Invalid PathExpression. Must be a StateFieldPathExpression. (500 Internal Server Error)
Wie kann ich das tun ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie
DISTINCT
auf den verknüpftenaccount
id
:Aus der offiziellen Dokumentation: http://docs.doctrine-project.org/en/latest/reference/dql-doctrine-query-language.html
"Möglich machen soll dies sehr einfach. Fügen Sie einfach die Eigenschaft shopId der product-Entität als jeder andere Feld-mapping-Eigenschaft, und so, dass es entspricht dem aktuellen Spalte in der Datenbank-Tabelle. Stellen Sie sicher, dass Sie in dieser Eigenschaft ÜBER die Vereins-Eigenschaft "shop", sonst funktioniert es nicht wie erwartet."
http://pietervogelaar.nl/doctrine-2-use-foreign-key-as-field-in-dql/
Hinweis: ich bin mit einem benutzerdefinierten hydrator. Ich lief in Probleme, wenn diese mit der Standard-hydrator.
Große, nicht mehr unnötige Verknüpfungen für den nur-lese-Abfragen! Ich bin mir nicht sicher, was die Auswirkungen wären, wenn Sie versuchen zu aktualisieren, werden die Objekte in einem ResultSet.