【问题标题】:Symfony SonataAdminBundle - using a different entity for list/create in the same admin moduleSymfony SonataAdminBundle - 在同一个管理模块中使用不同的实体进行列表/创建
【发布时间】:2014-07-30 16:41:07
【问题描述】:
我对奏鸣曲比较陌生,我需要实现一个新的管理模块,其结构类似于以下内容:
假设我有一个典型的购物车场景,其中有一个 Order 实体和一个 OrderItem(一对多关系)。
在列表视图中,它应该显示所有订单项目,但在创建操作中,它将允许创建一个订单实体(带有用于创建订单项目的嵌入式表单)。
我需要创建 2 个管理模块吗?如果是,如何将“创建”按钮更改为指向其他管理员?
感谢您的帮助。
【问题讨论】:
标签:
php
symfony
sonata-admin
【解决方案1】:
您创建自己的实体 Order 和 OrderItem。然后你需要为每个创建一个特定的管理类。
当您构建订单表单映射器时,您需要嵌入订单项目集合,这样的事情应该可以完成:
->with('OrderItem')
->add('orderItem', 'sonata_type_collection', array(
'label' => 'Item',
'required' => true,
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
),array(
'edit' => 'inline',
'inline' => 'table',
'sortable' => 'position',
))
我不明白,为什么要更改创建按钮?