WEBアプリケーション研究室 開発ノート TOP

WEBアプリケーション研究室 開発ノート [symfony] action内でforward元のmodule名、action名を取得する。

スポンサーサイト

-------- --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

    このエントリーをはてなブックマークに追加

forwardされたaction内で


$this->getModuleName()
$this->getActionName()

をすると、当たり前ですがforward先(最後のaction)の名前を取得してしまいます。
そこでforwardの場合URLは変わらないのでそこからmodule名を取得してみました。

sfContext::getInstance()->getRouting()->findRoute($this->getRequest()->getPathInfo());

これはルートがないときnullを返します。

すいません。最初に書いた情報は間違ってるっぽいです。parseは
"Parses a URL to find a matching route and sets internal state."
routerにデータをセットしちゃうのでこの場合適切じゃなかったです。
↓これは間違いです
URLからmodule名、action名を得るにはsfPatternRouting::parseを使います。
RoutingはContextから取得できるので


$route = sfContext::getInstance()->getRouting()->parse($request->getPathInfo());


で出来ました。
注意する点は、httpからのフルパスは受け付けないので


$request->getUri()


を渡すと、Exceptionが投げられます。

[symfony 1.1.5]
スポンサーサイト

    このエントリーをはてなブックマークに追加
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。