如何将动态数量的输入值传递给 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 中的列值将静态值传递给动态值

如何将动态值传递给 TwiML

将跨度值传递给隐藏的输入

如何将一组选中/未选中的复选框值传递给 PHP 电子邮件生成器?

如何在一页上选择产品数量并将值传递给 cart.php

如何将 URL 输入参数值传递给 Blazor 页面?