2 Stimmen

Wie findet man eine Tabelle mit einem Alias in einer Doctrine ORM-Abfrage?

Ich verwende Doctrine ORM 1.2 und Symfony 1.4 und ich möchte Methode in myUser Klasse erstellen, die Doctrine_Query-Instanz als Argument mit einigen zusätzlichen linken Joins und Bedingungen übergeben erweitern wird. Der Trick ist, dass ich nicht immer will, dass diese linken Joins mit der Root-Komponente der Abfrage gemacht werden, und ich muss wissen, mit welcher Tabelle (Datensatzklasse) der Alias korrespondiert - in einigen Fällen möchte ich einen Alias einer anderen Komponente übergeben und erwarten, dass er mit einigen zusätzlichen linken Joins und Bedingungen ergänzt wird.

Meine Frage lautet: Wie kann ich überprüfen, welche Komponente (im Wesentlichen eine Tabelle) einen bestimmten Alias darstellt? Angenommen, ich erstelle eine Doctrine_Query-Instanz:

$query = Doctrine_Query::create();
$query->from('Folder f')->leftJoin('f.ChildFolders cf');

Nun möchte ich, dass meine Methode in der Klasse myUser der Tabelle mit dem Alias 'cf' einige Joins hinzufügt, die jedoch je nach Tabelle, die 'cf' aliasiert, variieren. Ich möchte es auf diese Weise aufrufen:

$this->getUser()->limitQueryResultsWithSomeCondition($query, 'cf');

Dies sollte eine Abfrage mit zusätzlichen Elementen ergeben. Wie kann ich herausfinden, welche Tabelle durch den Alias "cf" symbolisiert wird und ob sie in der gegebenen Abfrage überhaupt existiert?

Es ist recht einfach, wenn es sich um die Wurzeltabelle einer Abfrage handelt, die erweitert werden muss, aber ich kann keine Möglichkeit finden, dies in anderen Fällen zu tun.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X