0

我目前在一个销售跟踪项目中工作——我经常遇到我必须复制关于列出、显示或编辑模型的代码的情况。

我有 3 个模型,Lead、Customer 和 Sales Activity。Lead 与客户之间的关系为 1:1,Lead 与销售活动之间的关系为 1:M。

我想要的是,当我 SHOW a Lead 时,我应该能够重用 customer admin 类的 show 功能,而不必在 Lead admin 类的 show 功能中重做。

同样,我希望能够将 Sales Activity 类的 LIST 和 CREATE 函数添加到 Lead SHOW 函数中,而无需重新编码已经存在的内容。我可以在自定义模板中使用 render(controller()) - 但这包括基本模板以及目标控制器,它只会弄乱整个布局

我感谢您对此事的任何意见。谢谢你的时间。

4

1 回答 1

0

基本答案是管理类继承。

另一种方法是用你的特性创建一个特性,configureShowFields并在你的所有管理类中使用这个特性。

如果您愿意尝试新的捆绑包,您可以查看:https ://github.com/blast-project/CoreBundle

此捆绑包允许在 Yaml 中配置您的管理员

其中一项功能将适合您的用例,如下所示:

all:
    Sonata\AdminBundle\Show\ShowMapper:
        add:
            name:
               type: text
            address: 
               type: textarea
            ...

它将允许您为所有管理员配置映射器

于 2017-01-10T11:33:06.513 回答