Symfony 扩展实体
Posted
技术标签:
【中文标题】Symfony 扩展实体【英文标题】:Symfony extends entity 【发布时间】:2021-03-22 05:12:59 【问题描述】:它可以通过其他实体 gtoup 扩展实体组也改变 OneToOne/OneToMany 关系。
例如,我尝试通过用户扩展 UserTemp,但在架构验证时我收到映射无效的错误。
类用户
/**
* @ORM\Table(name="d1_user")
* @ORM\Entity(repositoryClass="App\Repository\UserRepository")
*/
class User
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string|null
*
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $name;
/**
* @var UserAddress
*
* @ORM\OneToMany(targetEntity="UserAdress", mappedBy="user", cascade="persist", "remove", orphanRemoval=true)
*/
private $address;
类 UserTemp
/**
* @ORM\Table(name="d1_user")
* @ORM\Entity(repositoryClass="App\Repository\UserTempRepository")
*/
class UserTemp extends User
/**
* @var UserTempAddress
*
* @ORM\OneToMany(targetEntity="UserTempAdress", mappedBy="user", cascade="persist", "remove", orphanRemoval=true)
*/
private $address;
【问题讨论】:
了解类表继承和单表继承:doctrine-project.org/projects/doctrine-orm/en/2.7/reference/…,然后如何覆盖关联:doctrine-project.org/projects/doctrine-orm/en/2.7/reference/… 【参考方案1】:你试试
/**
* @EntityExtension("User") //path Class User
*/
trait UserTempTrait
/**
* @var UserTempAddress
*
* @ORM\OneToMany(targetEntity="UserTempAdress", mappedBy="user", cascade="persist", "remove", orphanRemoval=true)
*/
private $address;
【讨论】:
以上是关于Symfony 扩展实体的主要内容,如果未能解决你的问题,请参考以下文章