如何在collectionType字段上获取数据()-Symfony 4



我在Symfony 4 ORM表单(干预(上有一个collectionType(装备(。例如,此设备字段:

<input type="file" id="intervention_equipements_0_photoGraffiti" name="intervention[equipements][0][photoGraffiti]">

我试图用获取该字段的数据

$fileToTransfer = $form['intervention_equipements_0_photoGraffiti']->getData();

$fileToTransfer = $form['intervention[equipements][0][photoGraffiti]']->getData();

我有错误儿童"干预[设备][0][photoGraffiti]"不存在。

这是我的干预类型:

$builder          
->add('idInstallation',         EntityType::class, [
'class' => Installation::class,
'choice_label' => 'numeroInstallation',
'required' => false,
])
->add('equipements', CollectionType::class, array(
'entry_type' => EquipementInterventionType::class,
'entry_options' => array('label' => false),
))

设备实体:

$builder   
->add('nom',                    TextType::class, array(
'error_bubbling' => true,
'required' => false,
'disabled' => true
))    
->add('numero',                 TextType::class, array(
'error_bubbling' => true,
'required' => false,
'disabled' => true
))        
->add('etatEquipement',         ChoiceType::class, array(
'choices' => $choices_controle,
'expanded' => false,
'multiple' => false,
'required' => false,
'error_bubbling' => true,
))
->add('photoEquipement',        FileType::class, array(
'error_bubbling' => true,
'required' => false,
'disabled' => false,
'data_class' => null
))
->add('graffiti',               CheckboxType::class, array(
'required' => false,
'error_bubbling' => true,
))
->add('photoGraffiti',          FileType::class, array(
'error_bubbling' => true,
'required' => false,
'disabled' => false,
'data_class' => null
))
...

请问我该怎么修?

直接使用$form->getData()。这将返回包含您正在查找的所有表单数据的数组。

在表单控制器中

$equipements = $intervention->getEquipement();

将返回集合数组,然后

foreach ($equipements as $equipement) {
$fileToTransfer = $equipement->getPhotoGraffiti()
}

希望你的实体类中有getter和setter

最新更新