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()でリダイレクトするにはどうすればよいですか?
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);
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')); }
_