gpt4 book ai didi

Symfony 2 批量操作的表单名称?

转载 作者:行者123 更新时间:2023-12-02 13:40:38 25 4
gpt4 key购买 nike

我有一个 html 表格形式的项目列表。我希望有机会以批处理模式保存一些数据。为此,我需要我的表单字段名称如下所示:provider[i][title] 等。但是当我尝试创建表单字段时,出现错误:

表单类型名称(“provider[0]”)无效。名称只能包含字母、数字和“_”。

我对表单集合很感兴趣,但这并不完全是我所需要的。

我想像 $request->request->get('provider') 一样运行整个表单,然后迭代以获取实际数据。我很困惑!!这是我能想象到的最简单的任务。

<input type='text' name='provider[0][title]'>
<input type='text' name='provider[1][title]'>
<input type='text' name='provider[2][title]'>

我可以使用 $request->request->all(),它是一个解决方案,但我认为不是那么优雅。有什么想法吗?

最佳答案

这是完全正常的,您不能直接使用“provider[0]”之类的名称来命名您的字段。这部分字段名称是由 Symfony 生成的。

对我来说,以一种形式存储多个实体的唯一(好)方法是使用集合。 Symfony2 的文档中对它们进行了很好的解释:http://symfony.com/doc/current/cookbook/form/form_collections.html

在您的情况下,您只需创建一个包含一个集合字段的表单,并使用 JavaScript 在 Controller 或航类添加行。对于“provider”字段,只需创建一个带有一个文本字段的 formType。

如果您使用 html 数组,您只需为每个实体添加一行即可。如果provider[i]中的i没有链接到其他实体,则它们将与数据库中的实体绑定(bind)。

最后,使用 POST 数据绝对不是一个好的解决方案:您将失去表单字段断言和 CSRF 保护。

关于Symfony 2 批量操作的表单名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14145548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com