リダイレクト | Controller & Action

リダイレクタを使用することで、ユーザを他のサイトやページに遷移させることができます。コントローラ(アクション)内では $this->redirect でリダイレクタにアクセスできます。
public function myAction()
{
  $this->redirect->url("http://www.example.com/");
}
自サービス内での遷移ならば、uri() を使用した方がドメインを省略できるので楽です。
public function myAction()
{
  $this->redirect->uri("/diary/edit/3");
}
to() を使用すると、内部URIを使用することができます。例えば、リクエストURLが http://.../foo/bar/buz で、以下のルーティング設定にマッチしたとします。
※ルーティング設定についてはこちらを参照してください。
$this->route("default")
       ->uri(":module/:controller/:action")
       ->defaults(array(
         ":module"     => "index",
         ":controller" => "index",
         ":action"     => "index"
       ));
このリクエストで下記のように to() をコールすると、リダイレクト先URLは http://.../foo/hoge/fuga となります。
$this->redirect->to("c: hoge, a: fuga");
省略されたパラメータは現在の値が使用されます。分かり易く言えば、同モジュールのコントローラにリダイレクトする場合はモジュールの指定を省略でき、同コントローラのアクションにリダイレクトする場合はコントローラの指定も省略できます。

マッチしたルーティング設定(現在のリクエストのルーティング)以外の設定からURLを生成する場合は、そのルーティング名を指定します。
$this->route("test")
       ->uri("test/:action/:param")
       ->module("test")
       ->controller("index")
       ->defaults(array(
         ":action" => "index",
         ":param"  => null
       ));
$this->redirect->to("n: test, a: fuga, param: 1");
リダイレクト先は http://.../test/fuga/1 となります。