我很困惑,如何在symfony中为我的问题添加关联映射。
我有两个实体:用户和朋友。
用户表的id为主键(auto)。 friends表具有id(auto,primary key),userId和friendId作为列。 friendId也是User表中的用户。
朋友表:
ID userId friendsId
---------------------
1 564 123
2 564 345
3 777 456
User Table:
ID Name
---------------------
123 Alfons
345 Paul
456 Guiseppe
564 Mary
777 Belinda
现在我想映射两个表,我可以在我的Userobject中调用一个函数,例如getFriends(): User
。此函数应返回引用我的用户id的friends表的Usersobjects。
正确的方式应该是一对多关联,单向连接表?
先感谢您;-)
以下是实体字段的外观
在用户实体类中
/**
* @var int
* @ORM\Column(name="ID", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
* @ORM\Column(name="Name", type="string", length=100, nullable=true)
*/
private $name;
/**
* @var Collection
* @ORM\OneToMany(targetEntity="Friend", mappedBy="friendUser")
* @ORM\JoinTable(name="User")
*/
private $friends;
在朋友实体类中
/**
* @var int
* @ORM\Column(name="ID", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* This is the user
*
* @ORM\ManyToOne(targetEntity="User", inversedBy="ID")
* @ORM\JoinColumn(name="userId", referencedColumnName="ID")
*/
private $user;
/**
* This is the friends' user entity
*
* @ORM\ManyToOne(targetEntity="User", inversedBy="ID")
* @ORM\JoinColumn(name="friendsId", referencedColumnName="ID")
*/
private $friendUser;