我从symfony开始,我可以'找到合适的条款来提问,所以解决方案可能非常简单或重复,所以请耐心等待。
当我在浏览器中输入类似http://localhost:8000/foo/fooPage/的网址时,它可以正常工作。
但是当我在表单提交后尝试这样做时:
return $this->redirectToRoute('/foo/fooPage/');
我收到此错误:无法生成指定路由“/ foo / fooPage /”的URL,因为此路由不存在。
那么重定向的正确方法是什么?
答案 0 :(得分:1)
注解:
/**
* @Route("/some", name="some_route")
*/
public function someAction()
YAML:
someRoute:
path: /some
defaults: { _controller: AppBundle:Default:some}
如上所述,/some
是路径路径。 some_route
是路径名称。
php bin/console debug:router
OR
php app/console debug:router
将显示路线详情如下。
route_name METHOD /path
// redirect to the "some_route" route.
return $this->redirectToRoute('some_route');
// do a permanent - 301 redirect
return $this->redirectToRoute('some_route', array(), 301);
// redirect to a route with parameters
return $this->redirectToRoute('some_route', array('param1' => 'hi'));
// get route path using route name
$url = $this->generateUrl('some_route');
// redirect using route path
return $this->redirect($url);
// relative route
return $this->redirect('/path');
// absolute route
return $this->redirect('http://example.com');
答案 1 :(得分:0)
你可能想弄清楚你的路线。
使用:
php bin/console debug:router
显示所有路线。该名称通常是您在重定向中使用的名称。