奏鸣曲 sonata_type_collection 展示表
Posted
技术标签:
【中文标题】奏鸣曲 sonata_type_collection 展示表【英文标题】:sonata sonata_type_collection display table 【发布时间】:2015-04-20 09:58:43 【问题描述】:我有两个实体:“Event”和“EventImage”。一个事件可以有多个图像。
这是在 Event 表上定义的关系:
**
* Event
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="AppBundle\Entity\EventRepository")
*/
class Event
/**
* @ORM\OneToMany(targetEntity="EventImage", mappedBy="event")
*/
protected $eventImages;
这是在 EventImage 表上定义的关系:
/**
* EventImage
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="AppBundle\Entity\EventImageRepository")
*/
class EventImage
/**
* @ORM\ManyToOne(targetEntity="Event", inversedBy="eventImages")
* @ORM\JoinColumn(name="event_id", referencedColumnName="id")
*/
protected $event;
在我的 EventAdmin 中的“configureFormFields”中
$formMapper
->add('eventImages', 'sonata_type_collection',array(), array(
'edit' => 'inline',
'inline' => 'standard',
'sortable' => 'listOrder'
))
在我的 EventImageAdmin 中的“”
$formMapper
->add('id')
->add('imagePath', 'text')
->end()
;
现在我看到了一些示例,您可以在其中获得一个漂亮的格式化表格,每条拉取的记录都在一行中,带有用于删除行的复选框和拖动选项,以及“添加新行”按钮以链接一个新元素(或添加一个新元素)
但我得到的只是关联的 eventImage 记录的级联列表,没有在表格中格式化,没有“添加新行”选项。
我做错了什么?
【问题讨论】:
【参考方案1】:在您的EventImageAdmin
中,不需要id
字段也可以使用sonata_type_model_list
来表示imagePath
$formMapper
->add('imagePath', 'sonata_type_model_list', array('required' => false));
在您的EventAdmin
中,在$formMapper
的add()
函数的第四个参数中定义EventImageAdmin
的admin_code
服务ID
$formMapper
->add( 'eventImages', 'sonata_type_collection', array(
'cascade_validation' => false,
'type_options' => array( 'delete' => false ),
), array(
'edit' => 'inline',
'inline' => 'table',
'sortable' => 'position',
'link_parameters' => array( 'context' => 'define context from which you want to select media or else just add default' ),
'admin_code' => 'sonata.admin.your_service_id_here'
/*here provide service name for junction admin */
)
);
有关更多信息,请参阅我关于 Handling multiple file uploads in Sonata Admin Bundle
的另一个答案
【讨论】:
【参考方案2】:您错过了一些选项。试试这个:
->add('eventImages', 'sonata_type_collection', array(
'by_reference' => true,
'label' => false,
'type_options' => array('delete' => true),
'cascade_validation' => true,
'btn_add' => 'Add new EventImages',
"required" => false ), array(
'edit' => 'inline',
'inline' => 'table'
))
【讨论】:
感谢您的回答,但不幸的是,这不起作用。我仍然得到相同的记录级联,没有添加选项....以上是关于奏鸣曲 sonata_type_collection 展示表的主要内容,如果未能解决你的问题,请参考以下文章