如何将变量从树枝路径传递到同一个控制器?

Sru*_*ruj 2 symfony

在模板中,我需要在点击链接时将变量传递给控制器

{{ variable }}
<a href="{{ path('test',{ 'variable': 2}) }}">click</a>
Run Code Online (Sandbox Code Playgroud)

.这该怎么做?

/**
 * @Route("/test", defaults={"variable" = 1}, name="test")
 * @Method("GET")
 * @Template()
 */
public function testAction($variable)
{
    return array('variable'=>$variable);
} 
Run Code Online (Sandbox Code Playgroud)

你会说我需要@Route中的占位符/test/{variable},然后如何第一次访问url test


编辑:这是一个愚蠢的问题.我在测试这个问题时遇到了一些缓存问题.安慰很明显.

Tom*_*ski 5

你需要@Route像你提到的那样定义你的注释:

/**
 * @Route("/test/{variable}", defaults={"variable" = 0}, name="test")
 * @Method("GET")
 * @Template()
 */
public function testAction($variable)
{ 
    return array('variable'=>$variable);
} 
Run Code Online (Sandbox Code Playgroud)

由于defaults选项,您可以访问或不使用variable以下路线:

  1. 附:

    <a href="{{ path('test', {'variable': 2}) }}">click</a>
    
    Run Code Online (Sandbox Code Playgroud)

    这将产生网址/test/2,你的$variable意志相等2

  2. 无:

     <a href="{{ path('test') }}">click</a>
    
    Run Code Online (Sandbox Code Playgroud)

    这将生成url /test并且您的$variable意愿相等0(defaults选项中设置的值)