创建用户实体时如何在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。
新创建的用户实体必须继承到 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。