我正在构建一个书籍应用程序,供用户查看您上传的书籍,他/她必须关注您或成为您的朋友。该应用程序由3个实体书籍,用户和关注组成。这是一个示例结构Follow表
id | followered_id | followed_id
1 | 1 | 2
2 | 1 | 3
3 | 2 | 1
从上面的illutration用户1跟随/朋友到2和3.所以他们所有的书应该出现在他的个人资料中。在下面的控制器中,我能够尝试,但我必须点击每个用户才能查看他上传的书籍
$em = $this->getDoctrine()->getManager();
$me = $this->getAuthedUser(1);
$follows = $em->getRepository("AppBundle:Follow")->findBy(["follower" => $me]);
$followeds = [];
foreach ($follows as $follow) {
$followeds[] = $follow->getFollowed();
}
$followables = $em->getRepository("AppBundle:User")->findAll();
return $this->render("@App/index.html.twig", [
"me" => $me,
"followeds" => $followeds, //this
"followables" => $followables,
]);
以下是上述控制器方法的视图
<h1>Welcome, {{ me.username }}!</h1>
<h2>Your followed people:</h2>
{% if followeds is not empty %}
<ul>
{% for followed in followeds %}
<li>{{ followed.username }} (<a href="{{ path('profile', {user: followed.id}) }}">see his profile</a>)</li>
{% endfor %}
</ul>
{% else %}
you don't follow anyone yet.
{% endif %}
这是以下声明的实体片段
/**
* @var User
*
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\User")
*/, Kindly help me to get out of this.
并告诉我是否需要任何进一步的信息。先感谢您。私人追随者;
/**
* @var User
*
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\User")
*/
private $followed;
我目前面临的挑战是能够看到用户发布的书籍的所有属性,例如我所关注的书名,出版商等,而不点击上传它的用户。
{% for followed in followeds %}
<li> <!-- your followed profile link etc.--> </li>
{% if followed.books %}
<ul>
{% for book in followed.books %}
<li>{{ book.title }}</li>
{% endfor %}
<ul>
{% endif %}
{% endfor %}