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.