Php Symfony:从控制器中的CollectionType访问未映射的表单字段
我在Symfony 3.4中有这样一个表单集合:Php Symfony:从控制器中的CollectionType访问未映射的表单字段,php,symfony,Php,Symfony,我在Symfony 3.4中有这样一个表单集合: //MainType.php $builder->add('children',CollectionType::class,['entry\u type'=>ChildType::class]); //ChildType.php $builder->add('myField',null,['mapped'=>false]); //加上更多字段,映射到基础“Child”实体 //控制器 $form=$this->createForm(MainT
//MainType.php
$builder->add('children',CollectionType::class,['entry\u type'=>ChildType::class]);
//ChildType.php
$builder->add('myField',null,['mapped'=>false]);
//加上更多字段,映射到基础“Child”实体
//控制器
$form=$this->createForm(MainType::class,['children'=>$children]);
$form->handleRequest($request);
如果($form->isSubmitted()和$form->isValid()){
//我如何在这里访问“myField”的数据?
}
当你用平常的方式做这件事的时候
$data=$form->getData();
…我得到的是子实体的数组,而不是表单本身
换言之,问题是:在表单集合中,如何访问子表单,而不是子实体?我在任何地方都找不到解决方案,因此我将发布我最终如何解决它:
/**@var Symfony\Component\Form\Form$formChild*/
foreach($form->get('children')作为$formChild)
{
$formChild->get('myField')->getData();//就是这样!
}
基本原理解释如下: