Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony:从控制器中的CollectionType访问未映射的表单字段_Php_Symfony - Fatal编程技术网

Php Symfony:从控制器中的CollectionType访问未映射的表单字段

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

我在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(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();//就是这样!
}
基本原理解释如下: