如何将动态数量的输入值传递给 Symfony2.1 中的控制器
Posted
技术标签:
【中文标题】如何将动态数量的输入值传递给 Symfony2.1 中的控制器【英文标题】:How to pass a dynamic number of input values to a controller in Symfony2.1 【发布时间】:2012-10-18 16:02:01 【问题描述】:假设在 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-input 值分组并用标记分隔它们。例如:
% render AcmeBundle:BundleName:show with 'els': '1_5_7' %
这是最好的方法还是我可以做得更好?
【问题讨论】:
【参考方案1】:为什么不只传递一个参数数组?
控制器:
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] %
这样你可以传入任意数量的参数。
【讨论】:
如果数组是在 twig 模板中手动创建的(即具有固定大小和预先知道的元素),则为 true。你将如何通过使用一个长度和内容未知的数组来做同样的事情?例如,它可以由另一个控制器返回。以上是关于如何将动态数量的输入值传递给 Symfony2.1 中的控制器的主要内容,如果未能解决你的问题,请参考以下文章
如何根据 azure databricks 中的列值将静态值传递给动态值