我的表单设计有问题,即使框架允许,我也不知道......
我有一个具有多个值的实体:
Contract:
Id
Client
Creation Date
Comments
array (Emision)
Emision:
Id
Month
Year
Quantity
Area
Area
Id
Name
我需要按照区域整合的方式创建一个与合作伙伴签订合同的表单,换句话说,区域* 24(每月1个)emisions
那些emisions可能不存在,所以如果字段数量为空则不应该保留它们
首先,我尝试在控制器中创建一个带有emision [area] [year] [month]的数组:
foreach($areas as $area){
for ($i = 0; $i < 2; $i++){
for ($j = 0; $j < 12; $j++){
$emision = new Emision();
$emision->setZona($area->getId());
$emision->setMonth($j);
$emision->setYear($i);
$emisiones[$area][$i][$j] = $emision;
}
}
}
和
return $this->render('ZBPubliBundle:Contrato:new.html.twig', array(
'entity' => $entity,
'form' => $form->createView(),
'emisiones' => $emisiones
));
使用所需的设计很容易在树枝中生成表单,但表单中有很多相同的emision对象名称,我无法在响应中获取它们。
尝试在合同中创建了许多新的事件后:
$builder
->add('Client')
->add('createdAt')
->add('...')
->add('emisiones', 'collection', array('type' => new EmisionContratoType()))
;
和
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('cantidad')
->add('year', null, array('read_only' => true))
->add('month', null, array('read_only' => true))
->add('zona', null, array('read_only' => true))
;
}
并且在控制器中我将emisions直接添加到控制器操作中的合同对象,但是我无法在视图中获取区域或年份的emisions来绘制表单...
我想知道我的问题是否有“时尚解决方案”......
Tyvm抱歉我的英语不好!