从action到routing.yml的等效路由

时间:2011-11-12 19:53:29

标签: php symfony routing

class DemoController extends Controller
{
    /**
     * @Route("/hello/{name}", name="_demo_hello")
     * @Template()
     */
    public function helloAction($name)
    {
        return array('name' => $name);
    }

    // ...
}
/**
 * @Route("/hello/{name}", name="_demo_hello")
 * @Template()
 */

我怎样才能将其移至文件routing.yml?我想在这些文件中创建所有路由,而不是在行动中。

1 个答案:

答案 0 :(得分:2)

看看这个:http://symfony.com/doc/current/book/routing.html 根据此文档,您的规则将如下所示:

_demo_hello:
    pattern: /hello/{name}
    defaults:
        _controller: AcmeDemoBundle:Demo:hello

但是,据我所知,您无法在路由文件中创建@Template()行为。您必须编写代码以从控制器返回模板。像这样:

public function helloAction($name)
{
    return $this->render('AcmeDemoBundle:Demo:hello.html.twig', array('name' => $name));
}