我有点困惑,如何在symfony中添加关联映射,为我的问题。
我有两个实体:用户和朋友。
用户表有一个 id 作为主键(自动(。 友元表有一个 id(auto,主键(、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
现在我想映射两个表,我可以在我的用户对象中调用一个函数,例如getFriends(): User
.此函数应返回引用存储我的用户 id 的 friends 表的 Users对象。
正确的方法应该是一对多关联,单向与连接表?
提前谢谢你;-(
以下是实体字段
的外观在用户实体类中
/**
* @var int
* @ORMColumn(name="ID", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
* @ORMColumn(name="Name", type="string", length=100, nullable=true)
*/
private $name;
/**
* @var Collection
* @ORMOneToMany(targetEntity="Friend", mappedBy="friendUser")
* @ORMJoinTable(name="User")
*/
private $friends;
在友元实体类中
/**
* @var int
* @ORMColumn(name="ID", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
private $id;
/**
* This is the user
*
* @ORMManyToOne(targetEntity="User", inversedBy="ID")
* @ORMJoinColumn(name="userId", referencedColumnName="ID")
*/
private $user;
/**
* This is the friends' user entity
*
* @ORMManyToOne(targetEntity="User", inversedBy="ID")
* @ORMJoinColumn(name="friendsId", referencedColumnName="ID")
*/
private $friendUser;