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 に走る前に、まずはこちらをチェックです。