Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.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 Symfony2和FormBuilder:如何在生成器中添加elemetns编号_Php_Symfony_Controller_Twig - Fatal编程技术网

Php Symfony2和FormBuilder:如何在生成器中添加elemetns编号

Php Symfony2和FormBuilder:如何在生成器中添加elemetns编号,php,symfony,controller,twig,Php,Symfony,Controller,Twig,我有一个formbuilder,在其中我从实体添加一些值: $builder->add('affiliation', 'entity', array( 'class' => 'SciForumVersion2Bundle:UserAffiliation', 'multiple' => true, 'expanded' => true, 'query_builder' => function(EntityRepository $er)

我有一个formbuilder,在其中我从实体添加一些值:

$builder->add('affiliation', 'entity', array(
    'class' => 'SciForumVersion2Bundle:UserAffiliation',
    'multiple' => true,
    'expanded' => true,
    'query_builder' => function(EntityRepository $er) use ($author,$user) {
     return $er->createQueryBuilder('ua')
        ->where("ua.user_id = {$user->getId()}")
        ->andWhere("ua.affiliation_id not in ( select pa.affiliation_id FROM SciForumVersion2Bundle:PersonAffiliation pa where pa.person_id = {$author->getPersonId()} )");
     },
     'required'  => true,
));
在我的控制器中,我想检查我的表单中是否有内容。如果有,我将显示一个视图,如果没有,我将显示另一个视图

这可能吗?如果可能,如何实现

谢谢。

试试看:

$data = $form->getData()

如果要在表单类型中获取当前数据(在呈现表单之后),可以使用标准的每个表单类型中提供的
builder

它与正常形式的响应完全相同,因此您可以使用:

$builder->getData()


根据您想要生成的内容,使用if子句添加不同的字段。

什么是“检查我的表单中是否有内容?”您到底在寻找什么?你的条件是基于什么?谢谢你的评论@ColinMorelli。事实上,我用2个where子句从一个实体填充生成器。如果查询返回某些内容,则会将其添加到生成器中。在我的controlelr中,我想知道查询是否返回了一些东西,因此表单中是否至少有一个元素。谢谢0x1gene,但我也得到了同样的想法:
object(SciForum\Version2Bundle\Entity\PersonAffiliation)#567(5){[“id”:protected]=>NULL[“person\u id”:protected]=>NULL[“affiliation\u id”:protected]=>NULL[“个人”:受保护的]=>NULL[“从属关系”:受保护的]=>NULL}
您是在呈现表单还是在提交表单时不想知道表单中的内容?另外,您是否检查了您的查询是否在您的案例中返回了一些结果?可以尝试:
$form->get('affiliation')->getData()我试图在呈现时检查我的表单,而不是在提交时。根据不同的形式,我会尝试呈现不同的视图。我的查询返回了正确的结果。对于您最后的评论,我尝试过,但这只在提交表单时有效,我想知道表单中以前有什么。您能提供更多详细信息吗?$builder是什么?您在自己的问题代码中使用了生成器。它基本上是包含所有formtypes数据的对象。哦,是的,对不起。如果我的生成器是在FormType类中创建的呢?我怎样才能在控制器中获得$builder?