s

symfonyでsqlを節約

doSelectJoinXXX()

っていう関数を使うと 2 つのテーブルを join した結果を SQL 1 本で取得できる。 この関数は schema.yml で外部参照を設定すると自動で生成される。

第18章 - パフォーマンス

データベースへの必要なクエリの回数は11回ではなく1回なので速くなります。

[code] // アクション内で $this->articles = ArticlePeer::doSelectJoinAuthor(new Criteria());

// doSelectJoinAuthor()によって発行されたデータベースへのクエリ SELECT article.id, article.title, article.author_id, ... author.id, author.name, ... FROM article, author WHERE article.author_id = author.id

// テンプレートにおいて(変わらず)

  • getTitle() ?>, written by getAuthor()->getName() ?>

[/code]