dna*_*irl 0 controller routes symfony
我正在尝试学习如何使用 Symfony 2.3 框架。我认为这是一个很好的第一个练习,修改Acme\DemoBundle\DemoController::helloaction()为在未输入任何名称时提供默认名称。  
这是原文:
/**
 * @Route("/hello/{name}", name="_demo_hello")
 * @Template()
 */
public function helloAction($name)
{
    return array('name' => $name);
}
Run Code Online (Sandbox Code Playgroud)
它适用于像这样的 url localhost/Symfony/web/demo/hello/SOMENAME,但对于像localhost/Symfony/web/demo/hello/SOMENAME/、localhost/Symfony/web/demo/hello和 这样的 url 则失败localhost/Symfony/web/demo/hello/
这就是我所做的:
/**
 * @Route("/hello", name="_demo_hello", defaults={"name" = "World"})
 * @Template()
 */
public function helloAction($name)
{
    return array('name' => $name);
}
Run Code Online (Sandbox Code Playgroud)
它适用于和localhost/Symfony/web/demo/hello失败localhost/Symfony/web/demo/hello/SOMENAMElocalhost/Symfony/web/demo/hello/SOMENAME/localhost/Symfony/web/demo/hello/
如何使路由在有或没有名称以及有或没有尾部斜杠的情况下工作?
您可以像这样设置默认值:
/**
 * @Route("/hello/", defaults={"name" = "John"})
 * @Route("/hello/{name}", name="_demo_hello")
 * @Template()
 */
public function helloAction($name) { ... }
Run Code Online (Sandbox Code Playgroud)
同样重要的是要知道同一操作可以有多个路线,因此无需重复操作。
请参阅文档:http ://symfony.com/doc/2.2/book/controller.html以及:@Route Documentation
/我认为如果您在路线后附加 a ,您的解决方案也应该有效/hello。
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           4029 次  |  
        
|   最近记录:  |