【发布时间】:2021-02-23 09:40:07
【问题描述】:
简单示例: 我有两个用户 Admin 和 Client(都实现了 UserInterface)和 Cart - 三个实体类。管理员和客户可以拥有自己的购物车。如何配置/解析购物车实体关系以具有返回管理员或客户端用户的方法“getUser()”?
也许我可以在购物车中拥有 user_id 列和带有用户实体名称的第二列(类似于 DiscriminatorMapping 可以做的事情)?
class Admin implements UserInterface
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @var Collection
* @ORM\OneToMany(targetEntity="Cart", mappedBy="???")
*/
private $carts;
....
class Client implements UserInterface
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @var Collection
* @ORM\OneToMany(targetEntity="Cart", mappedBy="???")
*/
private $carts;
....
class Cart
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @var UserInterface
* @ORM\ManyToOne(targetEntity="UserInterface", ???)
*/
private $user;
....
我尝试了this Doctrine 功能,还尝试了DisciminatorMapping 和复合键(多列连接)选项,但没有成功。
有什么帮助吗?
【问题讨论】:
标签: symfony orm doctrine mapping relationship