Symfony generateUrl

时间:2017-05-16 13:47:58

标签: php symfony routing

我正在尝试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它可以工作,如果我从其他路由调用它,它就不会。为什么呢?

2 个答案:

答案 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)

首先,你不要在控制器方法中调用另一种控制器方法。如果您需要一些逻辑来共享它们,您应该使用服务。