Нет, это не раскрывается через API.
Если серьезно, вы не можете получить запрос, который сгенерировал коллекцию Doctrine_Collection.Самый простой способ сделать это - создать метод в вашей таблице, например:
//FooTable.php
public function findByWidgetQuery()
{
return $this->createQuery('foo')
->where('foo.baz = ?', 'bar');
}
И затем вы можете использовать getDqlPart () следующим образом:
$where = Doctrine_Core::getTable('Foo')
->findByWidgetQuery()
->getDqlPart('where');
Это должно дать ваммассив, подобный этому:
array(2) { [0] => string(8) 'widget = ?' [1] => string(10) 'widget = ?' }
Обратите внимание, что он не возвращает фактическое значение, переданное предложению where ().Для этого вам нужно использовать Doctrine_Query :: getParams () или Doctrine_Query :: getFlattenParams ()
Вы можете найти все в Doctrine API .