我使用symfony 2.7,并使用SonataAdminBundle。
$query = $this->modelManager->getEntityManager(new User())->createQuery("SELECT s FROM UserBundle\Entity\User s WHERE s.type LIKE 'Correspondant'" ); $formMapper ->add('correspondants','sonata_type_model', array( 'class'=>'Devagnos\UserBundle\Entity\User', 'multiple'=> true, 'by_reference' => false, 'label'=>'Correspondants associés', 'data' => function() { $data = new ArrayCollection(); $r= $query->getResult(); foreach($r as $result) { $data->add($result->getId()); } return $data; }, 'query' => $query ), )
但这不起作用,
你需要设置 data 属性并将要选择的实体作为默认值。
data
$selected = ... //fetch entities, e.g. from repository $formMapper ->add('field', 'sonata_type_model', array( 'your_settings' => '...', 'query' => '...', 'data' => $selected ) );