[symfony] filterからforward404するには?

filterからforward404したいと思って、


$this->getContext()->getController()->getAction($this->getContext()->getModuleName(), $this->getContext()->getActionName())->forward404Unless($office);

とやったところ、
sfError404Exception: in D:\php5\PEAR\symfony\action\sfAction.class.php on line 129
というエラー。
これは、例外をスローしているだけのようだ。

これは、filterは、forwardするたびに実行されてしまうからのようだ。
filterの実行条件が


if ($this->isFirstCall())
{
...
}

の場合、fowardするたびに実行してしまう。

以下のように修正すると、意図したとおり、forwardされた。


if ($this->isFirstCall() && !($this->getContext()->getModuleName() == sfConfig::get('sf_error_404_module') && $this->getContext()->getActionName() == sfConfig::get('sf_error_404_action')))
{
...
}

トラックバック(0)

このブログ記事を参照しているブログ一覧: filterからforward404するには?

このブログ記事に対するトラックバックURL: http://www.pistolfly.jp/mt/mt-tb-alt.cgi/58

コメントする