我正在Symfony2
中构建以下表单$form = $this->createFormBuilder($user)
->setMethod('POST')
->setAction('')
->add('username','text',array('attr'=>array('class'=>'form-control')))
->add('password','password',array('attr'=>array('class'=>'form-control')))
->add('title','text',array('attr'=>array('class'=>'form-control')))
->add('firstName','text',array('attr'=>array('class'=>'form-control')))
->add('surname','text',array('attr'=>array('class'=>'form-control')))
->add('school','entity', array(
'class' => 'AppBundle:Schools',
'choices' => $sch->mySchool(),
'em' => $this->getDoctrine()->getEntityManager(),
'property'=>'title',
'attr'=>array('class'=>'form-control')
)
)
->add('role','entity',array('class'=>'AppBundle:UserRoles','property'=>'description','attr'=>array('class'=>'form-control')))
->add('save','submit',array('label'=>'Save','attr'=>array('class'=>'btn btn-primary')))
->getForm();
,问题在于以下一行
'em' => $this->getDoctrine()->getEntityManager(),
阅读了本页http://symfony.com/doc/current/reference/forms/types/entity.html我正在尝试使用“使用选择”的方式,我的表单显示并返回所有学校,而不仅仅是我的方法实际返回的一所学校。
我已经浏览了一下,无法找到使用'em'值的示例,以前有人使用过此方法吗?
我不愿意沿着'query_builder'路线走下去,因为我希望能够在我正在构建的应用程序的其他区域中使用mySchool()方法。
干杯
答案 0 :(得分:0)
如果您特别想要使用其他实体管理器实例,那么em
选项就在那里。大多数应用程序只有一个实体管理器,因此您很少看到使用它。
话虽如此,如果您直接提供选择,那么EntityType根本不需要知道要使用哪个实体管理器,因此我省略了它 - 它'明确包含它的可能性会覆盖您的choices
答案 1 :(得分:0)
我想你正在通过一所学校"对象"选择"。
"选择" option应该是一个数组或者是\ Traversable的instanceof。当它们都不是时,它会忽略该选项并回退到默认行为>从DB
尝试以下方法:
'choices' => array($sch->mySchool()),