设置:symfony 2.0,SonataAdminBundle 2.0
我有两个实体。公司和活动。公司有很多活动。 我还有一个管理公司,允许编辑公司名称和相关事件。
在数据库中,我有2家公司,每家公司有3个事件。
CompanyAdmin
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('name')
->add('events', 'sonata_type_collection', array(), array(
'edit' => 'inline',
'inline' => 'table'
))
;
$this->getFormFieldDescription('events')
->setAssociationAdmin($this->getConfigurationPool()->getInstance('namespace.platform.admin.event_positions'));
}
EventPositionsAdmin
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('name')
->add('date')
;
echo $this->getSubject().' ';
}
问题 echo $ this-> getSubject() Company1 打印 event1 event1 event1
预期结果: event1 event2 event3
答案 0 :(得分:0)
无法以这种方式在CompanyAdmin中获取当前的EventPosition。父管理员(CompanyAdmin)不会调用EventPositionsAdminController :: editAction,因此它不会更改当前ID,只会访问EventPositionsAdmin以了解表单的外观(EventPositionsAdmin :: configureFormFields())。
我猜你也在使用DoctrineORMBundle,用'sonata_type_collection'调用EventPositionsAdmin。如果您这样做,那只需要自定义其模板并操纵公司的所有EventPositions:
->add('contatos','sonata_type_collection', array('template' => 'MyBundle:custom_collection_template.html.twig'), array(
'edit' => 'inline',
'inline' => 'table',
'allow_add' => true,
'prototype' => true,
'allow_delete' => true
))