Zend Framework render、forward、redirectの違い
Zend Frameworkでのrender、forward、redirectの挙動について
render
指定したテンプレート(phtml)をレンダリング。
PHP
// 同モジュール/同コントローラ/同アクション.phtml
$this->render();
// もしくは指定なし
// 同モジュール/同コントローラ/foo.phtml
$this->render('foo');
forward
指定したアクションを実行。
PHP
// 同モジュール/同コントローラ/foo
$this->_forward('foo');
// 同モジュール/bar/foo
$this->_forward('foo', 'bar');
// /baz/bar/foo
$this->_forward('foo', 'bar', 'baz');
// /baz/bar/foo/a/1/b/2
$params['a'] = '1';
$params['b'] = '2';
$this->_forward('foo', 'bar', 'baz', $params);
redirect
指定URLにリダイレクト。
PHP
// /baz
$this->_redirect('/baz');
// /baz/bar
$this->_redirect('/baz/bar');
// /baz/bar/foo
$this->_redirect('/baz/bar/foo');
// http://example.com/baz/bar/foo
$this->_redirect('http://example.com/baz/bar/foo');
// http://example.com/baz/bar/foo?a=1&b=2
$this->_redirect('http://example.com/baz/bar/foo?a=1&b=2');