对于我的问题,如何在symfony中添加关联映射,我有点困惑。
我有两个实体:用户和朋友。
用户表具有一个ID作为主键(自动)。 friends表具有一个id(自动,主键),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。
正确的方法应该是一对多关联,单向连接表?
提前谢谢;-)
答案 0 :(得分:1)
这是实体字段的外观
在用户实体类中
/**
* @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;