如何将动态数量的输入值传递给Symfony2.1中的控制器

时间:2012-10-18 16:02:01

标签: symfony controller symfony-2.1

假设 Symfony2.1 中有一个控制器,它接收一个数值列表,例如

public function showAction($el1, $el2, $el3){...}

我认为 i -th $ eli 是一个数字ID。因此,我将在Twig模板中呈现该控制器,如下所示:

{% render 'AcmeBundle:BundleName:show' with {'el1':'1', 'el2':'5',  'el3':'7'}  %}

传递一个将它们全部分组的唯一值(如数组)会很好,例如

public function showAction($els){...}

其中 $ els 是一个值数组。当然,我猜这是不可能的,即使控制器是在Twig模板内渲染的。

我发现让输入更加动态的唯一方法是传递一个唯一值,该值将所有id输入值分组并用标记分隔它们。 E.g:

{% render AcmeBundle:BundleName:show with {'els': '1_5_7'} %}

这是最好的方法还是我可以做得更好?

1 个答案:

答案 0 :(得分:0)

为什么不传递一组参数?

<强>控制器:

public function showAction(array $els)
{
    // ...

    return ['els' => $els];
}

查看:

{% render 'AcmeBundle:Demo:show' with {'els': {'el1': 1, 'el2': 5, 'el3': 7}} %}

或者如果要传递数字索引数组:

{% render 'AcmeBundle:Demo:show' with {'els': [1, 5, 7]} %}

通过这种方式,您可以传入任意数量的参数。