按照symfony中的帖子数量获取所有用户和订单

时间:2017-01-02 19:41:17

标签: symfony entity-relationship

我有两个实体,User&帖子。这些实体与onetomany和manytoone关系相关联。连接工作正常。我一直在尝试创建一个查询,让所有用户都可以发布帖子,然后按照帖子的数量降序排列。

用户实体:

/**
     * @ORM\OneToMany(targetEntity="Post", mappedBy="user")
     */
     private $post;

发布实体:

/**
     * @ORM\ManyToOne(targetEntity="User", inversedBy="post")
     * @ORM\JoinColumn(name="user", referencedColumnName="id", onDelete="CASCADE")
     */
     private $user;

没有问题,基本上,我无法弄清楚如何在symfony中进行查询。

所以,这是返回所有用户的基本查询

$query = $this->createQueryBuilder('u')
            ->leftJoin('u.post', 'p')
            ->getQuery();

        return $query->getResult();

2 个答案:

答案 0 :(得分:1)

抱歉,我无法回复评论,我很高兴你把它整理好了。但请考虑未来和可扩展性。每次计算帖子都不是一个好主意,甚至一次是粗暴的诚实。考虑做大多数论坛软件现在所做的事情以及发布帖子时增加一个字段(称之为post_count或其他东西)。

你可以在删除后减少它,或者提供一个'重新计数'选项,管理员可以强制重新计票,但这应该是最后的手段。

答案 1 :(得分:0)

好的,所以我似乎设法解决了他的问题。这是查询:

*ptr