开发者

Subqueries with Doctrine_RawSql

Is it possible to have subqueries in the select field of Doctrine_RawSql?

$q->select('{t.*}, {i.*}, {e.*}, {f.*}, {f2.*}');
$q->addSelect("(SELECT f.id FROM Following f WHERE f.follower_id = ? AND f.following_id = t.owner_id) AS following");
$q->addSelect("(SELECT COUNT(c.id) FROM PostComments c WHERE c.post_id = t.id) AS num_comments");

The above example is what I have tired, but it pretty much breaks the query (it will not select anything other than the primary keys on each row).

Is there a special way to do this or am I开发者_如何学运维 just out of luck?


When I have a complex query that's a bit too difficult for DQL I generally just grab the PDO object and enter a query manually. Here's how:

$PDO = Doctrine_Manager::getInstance()->connection()->getDbh();
$PDO->prepare("
    //SQL Query Here
")->execute();

Saves alot of time and the end result is probably also a bit more understandable.


I actually fixed this problem by modifying Doctrine_RawSql's parseDqlQueryPart function into accepting a parameter, "select_sql" (instead of just "select"), and rendering it as if it were DQL. This allows me to use Doctrine instead of PDO.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜