答案就在那里warning
信息!
基本上,它告诉你的是Usuario
的定义方式可能会导致麻烦。在当前形式中,此代码允许您创建一个实例Usuario
并与之合作。但等一下。这在鉴别器图中没有定义。那么,当你尝试坚持下去时会发生什么呢?Boom!...或者至少它会抛出一个丑陋的异常。
现在,我知道您可能根本没有考虑过实例化Usuario
。这只是一个基类Natural
and Empresa
, but 教义不知道这一点.
那么,如何解决它呢?根据您的需求,有两种可能的情况:
Usuario
应该是可实例化的
也就是说,您的应用程序中的用户可以是Natural
, Empresa
或者只是简单的Usuario
。情况可能并非如此,但它可能适用于未来的读者。
解决方案: add Usuario
到鉴别器图。这将使您的用户有可能成为这三种类型中的任何一种。
* ...
* @ORM\DiscriminatorMap({
* "usuario" = "Usuario",
* "natural" = "Natural",
* "empresa" = "Empresa"
* })
* ...
Usuario
should not可实例化
也就是说,您的应用程序中的用户可以是Natural
or Empresa
,但从来没有Usuario
.
解决方案: make Usuario
an abstract
班级。这将导致它无法被实例化。
abstract class Usuario extends BaseUser {
...