使用Doctrine2加入表中的鉴别器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Doctrine2加入表中的鉴别器相关的知识,希望对你有一定的参考价值。
我有一个名为Divers的抽象父类,它被其他几个类扩展。 因此,我使用单表继承策略使用D2继承映射。
namespace MyBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* ParentClass
*
* @ORM\Table(name="PARENTCLASS")
* @ORM\Entity
* @ORM\InheritanceType("SINGLE_TABLE")
* @ORM\DiscriminatorColumn(name="idtable", type="string")
* @ORM\DiscriminatorMap(
* "CHILD-CLASS1" = "ChildClassOne",
* "CHILD-CLASS2" = "ChildClassTwo",
* "CHILD-CLASS3" = "ChildClassThree",
* "CHILD-CLASS4" = "ChildClassFour"
* )
*/
abstract class ParentClass
...
我想要实现的是在浏览器中显示鉴别器,并用一些描述来解释用户的含义。 我搜索了一个解决方案,比如将鉴别器放在连接表中但什么也没找到。
你有什么建议来实现我的目标吗?
谢谢你的帮助。
答案
鉴别器列对于Doctrine 2具有特殊含义,因此不能成为关系的一部分。
但是有一个简单的工作。只需添加另一列,并为其提供与鉴别器列相同的值。价值永远不会改变,所以很容易做到。然后,您可以使用与任何其他列相同的方式使用新列。
我知道从数据库的角度来看,具有相同值的两列是不理想的。但从对象的角度来看,这并不是什么大问题,因为鉴别器列永远不会作为属性公开。这就是学说的作用方式。它希望该列全部归于自身。
以上是关于使用Doctrine2加入表中的鉴别器的主要内容,如果未能解决你的问题,请参考以下文章