web-dev-qa-db-ja.com

symfony 2リダイレクトルート

Getを介して機能する次のルートがあります。

CanopyAbcBundle_crud_success:
  pattern:  /crud/success/
  defaults: { _controller: CanopyAbcBundle:Crud:success }
  requirements:
    _method:  GET

Canopyが名前空間の場合、バンドルはAbcBundle、コントローラーCrudで、アクションは成功です。

次は失敗します:

return $this->redirect($this->generateUrl('crud_success'));

Unable to generate a URL for the named route "crud_success" as such route does not exist.
500 Internal Server Error - RouteNotFoundException 

GenerateUrl()でリダイレクトするにはどうすればよいですか?

12
pigfox

php app/console cache:clearを使用してキャッシュをクリアします

return $this->redirect($this->generateUrl('CanopyAbcBundle_crud_success'));

パラメータが必要な場合は、次のように渡します。

return $this->redirect($this->generateUrl('CanopyAbcBundle_crud_success', array('param1' => $param1)), 301);
20
Gara

YAMLの最初の行は、ルーターコンポーネントで使用するルート名です。間違ったルート名のURLを生成しようとしています。あなたのURLは_CanopyAbcBundle_crud_success_ではなく_crud_success_です。また、generateUrl()メソッドは、その内容を実行します。ルート名とパラメーター(渡されたもの)からURLを生成します。 403リダイレクト応答を返すには、Controller基本クラスに組み込まれている$this->redirect($this->generateUrl('CanopyAbcBundle_crud_success'))を使用するか、次のように_Symfony\Component\HttpFoundation\RedirectResponse_のインスタンスを返すことができます。

_public function yourAction()
{
    return new RedirectResponse($this->generateUrl('CanopyAbcBundle_crud_success'));
} 
_
4
kix