Symfony2.0 では、Controller の Action の戻り値は、Response オブジェクト。
ってのはまぁ、良いとして、Response オブジェクトの作成方法についてちょっと自分なりにメモしておく。
(間違ってたらコメントください(´・ω・`))
基本的に以下の3パターン。
( http://symfony.com/doc/current/book/controller.htmlより引用 )
① 自分でレスポンスオブジェクトを作成
use Symfony\Component\HttpFoundation\Response; public function helloAction() { return new Response('Hello world!'); }リダイレクトする場合は、このパターン
②render関数を Action 内で使用
自分でテンプレートを指定して、レンダリングを行う。render() の戻り値が Response オブジェクトなので、これをそのまま Action の戻り値とする。
use Symfony\Component\HttpFoundation\Response; public function helloAction() { return $this->render('AcmeHelloBundle:Welcome:hello.html.twig', array('name' => $name)); }
③ テンプレートに渡すパラメータをActionの戻り値にして、Responce オブジェクト作成は フレームワークにやらせる
自分でテンプレートを指定して、レンダリングを行う。render() の戻り値が Response オブジェクトなので、これをそのまま Action の戻り値とする。
use Symfony\Component\HttpFoundation\Response; public function helloAction() { // array('name' => $name) が 内部で AcmeHelloBundle:Welcome:hello.html.twig に渡され、Response オブジェクトが自動で作成される return array('name' => $name) }
多分こんな感じ。
0 コメント:
コメントを投稿