J'ai l'itinéraire suivant qui fonctionne via un get:
CanopyAbcBundle_crud_success:
pattern: /crud/success/
defaults: { _controller: CanopyAbcBundle:Crud:success }
requirements:
_method: GET
Où Canopy est l'espace de noms, le bundle est AbcBundle, contrôleur Crud, l'action est réussie.
Les échecs suivants:
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
Comment puis-je rediriger avec generateUrl ()?
Videz votre cache à l'aide de php app/console cache:clear
return $this->redirect($this->generateUrl('CanopyAbcBundle_crud_success'));
Si des paramètres sont requis, passez comme ceci:
return $this->redirect($this->generateUrl('CanopyAbcBundle_crud_success', array('param1' => $param1)), 301);
La première ligne de votre YAML est le nom de l'itinéraire qui doit être utilisé avec le composant routeur. Vous essayez de générer une URL pour le mauvais nom d'itinéraire, le vôtre est CanopyAbcBundle_crud_success
, Pas crud_success
. De plus, la méthode generateUrl()
fait ce qu'elle dit: elle génère une URL à partir du nom de la route et des paramètres (ils sont passés). Pour renvoyer une réponse de redirection 403, vous pouvez soit utiliser $this->redirect($this->generateUrl('CanopyAbcBundle_crud_success'))
qui est intégrée à la classe de base Controller
, soit renvoyer une instance de Symfony\Component\HttpFoundation\RedirectResponse
Comme ceci:
public function yourAction() { return new RedirectResponse($this->generateUrl('CanopyAbcBundle_crud_success')); }