gpt4 book ai didi

symfony - 与额外字段的多对多自关系?

转载 作者:行者123 更新时间:2023-12-02 15:48:43 24 4
gpt4 key购买 nike

我正在尝试开发一个 friend 系统,我需要在我的用户实体上建立多对多关系;现在,这就是我所做的:

/**
* @ORM\ManyToMany(targetEntity="User", mappedBy="friends")
*/
protected $friendsWith;

/**
* @ORM\ManyToMany(targetEntity="User", inversedBy="friendsWith")
* @JoinTable(name="friends",
* joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="friend_user_id", referencedColumnName="id")}
* )
*/
protected $friends;

但是我想为这些关系添加一些额外的字段,例如创建日期或状态(已接受、待处理,...);我创建了另一个实体“Friend”,我希望该实体用作 friend 之间的链接。但我真的不知道如何管理这个......

你有什么想法吗?

谢谢!

最佳答案

恐怕您需要额外的类(class)才能建立这样的关联。以下是学说文档中的提示:

Why are many-to-many associations less common? Because frequently you want to associate additional attributes with an association, in which case you introduce an association class. Consequently, the direct many-to-many association disappears and is replaced by one-to-many/many-to-one associations between the 3 participating classes.

http://www.doctrine-project.org/docs/orm/2.1/en/reference/association-mapping.html#many-to-many-unidirectional

我想应该是 friend -> 特殊关联类(包含字段:user_id、friend_id、创建日期) -> friend 。并且您将 Friend 关联到两个字段 $myFriends 和 $imFriendOf 中的特殊类:)

关于symfony - 与额外字段的多对多自关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9134856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com