许多与Symfony 3的友好列表



我想使用ManyTomany自我引用来制作友好列表。我遵循了这个链接,看上去很好。但是现在,我的控制器应该采取什么行动:1-获取所有我的朋友/或当前用户的所有朋友2-使用诸如"添加朋友"之类的链接添加firend

谢谢您的时间和答案

在您的链接中,我的朋友是一个学说阵列集合,要让用户的朋友迭代它,然后添加一个朋友,只需在此集合中添加一个朋友并保存实体(使用Entity Manager),也许您需要在集合上添加一个级联以添加新用户为朋友。

您必须添加一些方法,例如getmyfriends,添加朋友和删除朋友

<?php
/** @Entity */
class User
{
    // ...
    /**
     * Many Users have Many Users.
     * @ManyToMany(targetEntity="User", mappedBy="myFriends")
     */
    private $friendsWithMe;
    /**
     * Many Users have many Users.
     * @ManyToMany(targetEntity="User", inversedBy="friendsWithMe")
     * @JoinTable(name="friends",
     *      joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},
     *      inverseJoinColumns={@JoinColumn(name="friend_user_id", referencedColumnName="id")}
     *      )
     */
    private $myFriends;
    public function __construct() {
        $this->friendsWithMe = new DoctrineCommonCollectionsArrayCollection();
        $this->myFriends = new DoctrineCommonCollectionsArrayCollection();
    }
    public function getMyFriends(){
        return $this->myFriends;
    }
    public function addFriend(User $friend){
        $this->myFriends->add($friend);
    }
    public function removeFriend(User $friend){
        $this->myFriends->removeElement($friend);
    }
}

在您的控制器中,您必须使用

实施一个动作
$currentUser= $this->get('security.context')->getToken()->getUser();
$myFriends = $currentUser->getMyfriends();
$this->render('your-template.html.twig', array(
    'myFriends' => $myFriends,
));

,在您的树枝模板中

<h1>My friends</h1>
<ul>
    {% for friend in myFriends %}
        <li>{{ friend.username }}</li>
    {% endfor %}
</ul>

相关内容

  • 没有找到相关文章

最新更新