Symfony SonataAdminBundle - 在同一管理模块中使用不同的实体进行列表/创建

时间:2014-07-30 16:41:08

标签: php symfony sonata-admin

我对奏鸣曲比较新,我需要实现一个新的Admin模块,其结构类似于以下内容: 假设我有一个典型的购物车场景,我有一个Order实体和一个OrderItem,(一对多的关系)。

在列表视图中,它应显示所有订单商品,但在创建操作中,它将允许创建订单实体(带有用于创建订单商品的嵌入表单)。

我是否需要创建2个管理模块?如果是,如何更改“创建”按钮以指向其他管理员?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以创建自己的实体,Order和OrderItem。然后,您需要为每个创建一个specefic Admin Class。 当您构建订单表单映射器时,您需要嵌入订单项集合,这样的事情应该可以完成工作:

->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',
        ))

我不明白,为什么要更改创建按钮?