Propel の Criteria を克服する

symfony では、標準の ORM として Propel が組み込まれています。
Propel でデータベースからデータを取り出す際には Criteria を使います。

$c = new Criteria;
$c->add(BlogPeer::AUTHOR_ID, 1); // ユーザーID=1 の人が書いたブログ
$blog = BlogPeer::doSelectOne($c);
// in view
echo $blog->getTitle();
echo $blog->getBody();

という感じで、データの扱いがとても簡単になるのですが、詳細なドキュメントが無いため、ちょっと複雑な Criteria を書こうと思うと、いろいろ試行錯誤したり直接ソースを読んだりしないといけませんでした。
しかし!symfony project が公開した「The Definitive Guide to symfony」には、豊富なサンプルと使用可能な Criteria がしっかり説明されています。

symfony Web PHP framework » Chapter 8 - Inside The Model Layer
http://www.symfony-project.com/book/trunk/08-Inside-the-Model-Layer

安易に RAW SQL に走る前に、まずはこちらをチェックです。