【发布时间】:2017-04-22 09:42:12
【问题描述】:
我想要一个不带前缀的 symfony 表单中的隐藏字段。该字段存储了我在侦听器中重新创建表单类型所需的一些信息。我不想遍历所有 $request 参数以获得正确的形式,所以我想添加没有任何前缀的简单字段。这需要在表单构建器中处理,因为前端不是捆绑包的一部分。
当前简化代码:
$builder->add('firstName'; TextType::class);
$builder->add('lastName'; TextType::class);
// ...
// field without prefix
$builder->add('someValue', HiddenType::class, ['mapped' => false]);
预期结果:
<input type="text" name="form_name[firstName]" />
<input type="text" name="form_name[lastName]" />
<!-- ... -->
<input type="hidden" name="someValue" /> <!-- without prefix -->
问题是我需要使用$request->request->get('someValue') 访问它。因为我的表单名称是动态的,所以我无法访问数组。
这可能吗?
【问题讨论】:
-
虽然大多数事情都是可能的,但这会让你扯掉你的头发。前缀用于通过handleRequest 映射发布的数据。你真的不能让它消失并期望表单组件能够工作。我没有完全遵循您的用例,但如果它是不需要由表单组件处理的只读值,您可能只是在您的 twig 模板中发出 html 代码。
-
@Cerad 如前所述,前端不是捆绑包的一部分,我不希望每个表单主题创建者每次创建表单时都需要添加此值。
标签: symfony symfony-forms symfony-2.8