эквивалентная маршрутизация от действия к маршрутизации.yml

#php #symfony #routing

#php #symfony #маршруты

Вопрос:

 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()
 */
  

как я могу перенести это в file routing.yml ? я хотел бы создать всю маршрутизацию в этих файлах, а не в действии.

Ответ №1:

Взгляните на это: 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));
}