redirectToRoute不会加载页面但键入会

时间:2016-12-26 02:33:30

标签: php html symfony

我从symfony开始,我可以'找到合适的条款来提问,所以解决方案可能非常简单或重复,所以请耐心等待。

当我在浏览器中输入类似http://localhost:8000/foo/fooPage/的网址时,它可以正常工作。

但是当我在表单提交后尝试这样做时:

return $this->redirectToRoute('/foo/fooPage/');

我收到此错误:无法生成指定路由“/ foo / fooPage /”的URL,因为此路由不存在。

那么重定向的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

1。确定什么是路由名称

注解:

/**
 * @Route("/some", name="some_route")
 */
public function someAction()

YAML:

someRoute:
    path:      /some
    defaults:  { _controller: AppBundle:Default:some}

如上所述,/some是路径路径some_route是路径名称

2。检查你的路线

php bin/console debug:router

OR

php app/console debug:router

将显示路线详情如下。

route_name               METHOD       /path

3。重定向可以作为控制器

的返回完成
// 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

显示所有路线。该名称通常是您在重定向中使用的名称。