我有 2 个 Symfony 包。AdminBundle 将始终安装。可能会或可能不会安装 PageBundle。
我想定义一个名为 AdminModule 的基本实体(名称、控制器类、描述、启用),以及一个简单地从 AdminModule 继承的 PageModule(实体控制器将实现特定的接口)。
<?php
namespace AdminBundle\Entity;
/**
* Admin Component
*
* @ORM\Entity
* @ORM\Table(name="admin_module")
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="discr", type="string")
* @ORM\DiscriminatorMap({"page" = "\PageBundle\Entity\PageComponent"})
*/
class AdminModule
{
// private vars, getters, setters
}
?>
<?php
namespace PageBundle\Entity;
use AdminBundle\Entity\AdminModule;
/**
* Page Component
*
* @ORM\Entity
* @ORM\Table(name="page_module")
*/
class PageModule extends AdminModule
{
//
}
?>
我认为,我遇到的问题是 AdminModule 注释@ORM\DiscriminatorMap({"page" = "\PageBundle\Entity\PageModule"})
需要在 AdminBundle 上定义 - 但可能没有安装 PageBundle。
我相信必须有错误类型的继承结构(?)但是我不清楚我可以采取哪些替代方法?感谢您的任何帮助或指导:)