创建用户实体时如何在yaml文件中定义实体继承?

How to define Entity inheritance in a yaml file when creating a User entity?

新创建的用户实体必须继承到 FOS\UserBundle\Model\User 的 FOS 用户包 states in its documentation

文档中的示例显示了如何在 PHP 实体中定义继承,但是一旦单击 YAML 选项卡,就根本看不到继承的痕迹:

# src/AppBundle/Resources/config/doctrine/User.orm.yml
AppBundle\Entity\User:
    type:  entity
    table: fos_user
    id:
        id:
            type: integer
            generator:
                strategy: AUTO

所以我做了一些研究并在定义中添加了 inheritance: 键:

AppBundle\Entity\User:
    inheritance:
        extends: FOS\UserBundle\Model\User
        type: simple
    id:
        id:
            type: integer
            generator:
                strategy: AUTO

它确实有效,但是创建了一个只有 id 属性 的空用户实体,没有任何继承痕迹。

所以问题是,如何为实际扩展 FOS\UserBundle\Model\User 实体的用户实体创建 YAML ORM 文件?

更新。
我应该提到,如果我使用文档中的确切 YAML 定义,没有任何继承,

AppBundle\Entity\User:
    type:  entity
    table: fos_user
    id:
        id:
            type: integer
            generator:
                strategy: AUTO

XML

那么结果是一样的——一个实体只有一个id 属性:

<?php
namespace AppBundle\Entity;

/**
 * User
 */
class User
{
    /**
     * @var integer
     */
    private $id;
    /**
     * Get id
     *
     * @return integer
     */
    public function getId()
    {
        return $this->id;
    }
}

它不是 YAML 的一部分,它是实体的一部分

查看此文档。 Doctrine ORM User class

为此,YAML 不需要继承,而您的实体应该由 FOS\UserBundle\Model\User 继承。

更新您的架构,您将获得在 FOS\UserBundle\Model\User.

中定义的所有字段

如果您需要额外字段或覆盖现有字段,请修改您的用户实体 class。