我正在尝试Symfony教程,但generateUrl不起作用。我在LuckyController中使用了这段代码:
$url = $this->generateUrl(
'blog/show',
array('slug' => 'my-blog-post')
);
和页面:BlogController:
/**
* @Route("/blog/show/{slug}")
*/
public function showAction($slug) {
echo "hello world"; die;
}
如果我从浏览器调用/ blog / show / try它可以工作,如果我从其他路由调用它,它就不会。为什么呢?
答案 0 :(得分:3)
您需要为路线设置名称
/**
* @Route("/blog/show/{slug}", name="blog_show")
*/
public function showAction($slug) {
echo "hello world"; die;
}
您用来生成网址的内容:
$url = $this->generateUrl(
'blog_show',
array('slug' => 'my-blog-post')
);
答案 1 :(得分:-2)
首先,你不要在控制器方法中调用另一种控制器方法。如果您需要一些逻辑来共享它们,您应该使用服务。