The limits of ORMs in PHP

(written by lawrence krubner, however indented passages are often quotes). You can contact lawrence at:, or follow me on Twitter.

I’m adding a new page to WP Questions to show “Good Citizens”, that is, experts who vote. You can see the query I wrote below. I wrote this and it occurred to me there is no ORM in PHP that could handle this. The site is built using Symfony and Propel, but I would not want to handle this with Propel.

SELECT count(vote) as voteTotal, sf_guard_user.*, sf_guard_user_profile.*, question.subject
FROM vote
JOIN sf_guard_user on
JOIN sf_guard_user_profile on
AND sf_guard_user_profile.user_id=vote.user_id_casting_vote
LEFT JOIN question on vote.question_id =
WHERE vote.user_id_casting_vote != question.user_id
AND sf_guard_user.is_super_admin != 1
AND vote.created_at > ‘$oneMonthAgo’
GROUP BY vote.user_id_casting_vote
HAVING voteTotal > 2
ORDER BY voteTotal desc