最佳实践主义用户朋友关系

Best practice doctrine user friend relationship

在主义中建立朋友关系的最佳方式是什么。

我接下来的方法是。

User.xml.orm:

    <many-to-many field="friends" target-entity="MyEntity\User">
        <join-table name="my_friends">
            <join-columns>
                <join-column name="idAUsers" referenced-column-name="id" on-delete="CASCADE" nullable="false" />
            </join-columns>
            <inverse-join-columns>
                <join-column name="idBUsers" referenced-column-name="id" on-delete="CASCADE" nullable="false" />
            </inverse-join-columns>
        </join-table>
    </many-to-many>

User.php

public function getFriends() {
    $friends = $this->getAUsers();
    foreach ($this->getBUsers() as $bUser) {
         $friends[] = $bUser;
    }
    return $friends;
}

如您所见,我需要合并两个 UserFriend 并在创建查询时每次都加入。

您应该使用多对多自引用。

doctrine documentation example 似乎非常恰当,因为它正好处理您的情况。