sonata_type_model 中的默认数据

default data in sonata_type_model

我使用 symfony 2.7,我使用 SonataAdminBundle。

我有 2 个名为 (Produit) 和 (Correspondant) 的实体,具有 OneToMany 关系,一个 Produit 可以有多个通讯员。在(Produit)的创建表单中,我有通讯员添加许多(通讯员),我喜欢默认添加所有通讯员,为此我尝试这样做:

ProduitAdmin

 $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 属性并将要选择的实体设置为默认值。

$selected = ... //fetch entities, e.g. from repository
$formMapper
    ->add('field', 'sonata_type_model', array(
        'your_settings' => '...',
        'query' => '...',
        'data' => $selected
        )
    );