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
)
);
我使用 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
)
);