Я использую Doctrine ORM 1.2 и Symfony 1.4, и я хочу создать метод в классе myUser, который расширит экземпляр Doctrine_Query, переданный в качестве аргумента, с некоторыми дополнительными левыми соединениями и условиями. Фокус в том, что я не всегда хочу, чтобы эти левые соединения были сделаны с корневым компонентом запроса, и мне нужно знать, с какой таблицей (классом записи) соответствует псевдоним, - в некоторых случаях я хотел бы передать псевдоним другой компонент и ожидаем, что он будет дополнен дополнительными левыми соединениями и условиями.Как найти таблицу, связанную с псевдонимом в запросе ORM доктрины?
Мой вопрос: как я могу проверить, какой компонент (по существу, таблица) представляет заданный псевдоним? Предположим, я создаю экземпляр Doctrine_Query:
$query = Doctrine_Query::create();
$query->from('Folder f')->leftJoin('f.ChildFolders cf');
Теперь я хочу, чтобы мой метод в классе MyUser, чтобы добавить некоторые присоединяется к столу с псевдонимом «КФ», но варьируя в зависимости от таблицы, которая «» CF алиасы. Я хочу называть это следующим образом:
$this->getUser()->limitQueryResultsWithSomeCondition($query, 'cf');
Это должно возвращать запрос с дополнительными элементами. Как я могу узнать, какая таблица символизируется псевдонимом 'cf' и существует ли она вообще в заданном запросе?
Это довольно просто, когда это корневая таблица запроса, которую необходимо расширить, но я не могу найти способ сделать это в других случаях.