Forms 如何使用Symfony创建具有变量字段的表单?
我正在尝试组合一个表单,它必须使用可变数量的字段来构建 我的模型是这样的:我有一个名为Forms 如何使用Symfony创建具有变量字段的表单?,forms,symfony,Forms,Symfony,我正在尝试组合一个表单,它必须使用可变数量的字段来构建 我的模型是这样的:我有一个名为concepts的表和另一个名为concept\u values的表 概念值为概念值的1-N(每个概念每月有一个值) 因此,我创建了一个表单,用户可以在其中输入当月每个概念的值 这就是我目前所做的: $lastMonthEnd = new \DateTimeImmutable('last day of last month'); $fb = $this->createFormBuilde
concepts
的表和另一个名为concept\u values
的表
概念值为概念值的1-N(每个概念每月有一个值)
因此,我创建了一个表单,用户可以在其中输入当月每个概念的值
这就是我目前所做的:
$lastMonthEnd = new \DateTimeImmutable('last day of last month');
$fb = $this->createFormBuilder();
foreach ($concepts as $concept) {
$conceptValue = $concept->getValueFor($lastMonthEnd);
$fb
->add(
'concept_'.$concept->getId(),
NumberType::class,
[
'label' => $concept->getName().' ('.$concept->getFormat().'):',
'html5' => true,
'data' => $conceptValue,
'required' => false,
]
)
;
}
$form = $fb->add(
'submit',
SubmitType::class,
[
'label' => 'Guardar',
]
)->getForm();
我遇到的问题是当我尝试将conceptValue对象绑定到小部件时
如果我将代码保持原样,则会出现异常无法转换属性路径“[concept_457]”的值:应为数字。
我尝试将行'data'=>$conceptValue,
更改为'data'=>$conceptValue->getValue(),
,这很有效,但是,当需要保存输入时,我需要根据小部件名称进行第二次查找
我也试着想出一个模型转换器,但并不真正理解如何使用它
谢谢 这看起来像是你可以用的东西。我相信你也可以在这里找到一些关于它的问题。谢谢@msg。我尝试将其更改为使用CollectionType。它呈现表单(我仍然需要处理标签和其他东西),但是我仍然无法保存提交的值。显然,集合中的对象没有绑定到formIt,可能是因为字段名和属性名不匹配。有一种选择可能有助于解决这个问题。