通过数据库表中的外键返回对象数组

时间:2014-12-28 20:05:26

标签: php doctrine-orm symfony-2.3

我有一个数据库,它看起来像这样:

实体:发布,评论..评论有一个外键post_id。

我需要通过其ID获取属于特定帖子的评论。并按getCreated()方法对其进行排序。

问题是,当我尝试通过post_id找到所有评论时:

$comments = $this->get('doctrine')->getRepository('BlogCommonBundle:Comment')->findBypost_id($postID); 

usort($comments, function($a, $b){
       return ($a->getCreated() < $b->getCreated());
    });

Im gettig ..CommonBundle\Entity\Comment' has no field 'postId'. 可能是因为它的外键。

有什么办法,该怎么做?

非常感谢!

1 个答案:

答案 0 :(得分:2)

似乎你有这样的联想:

/**
 * @ORM\ManyToOne(targetEntity="Post")
 */
protected $post;

因此,您应该post找到您的评论,而不是post_id

$comments = $this->get('doctrine')->getRepository('BlogCommonBundle:Comment')->findBy(['post' => $postID]);

您还可以通过添加['created' => 'DESC']作为第二个参数来对其进行排序:

$comments = $this->get('doctrine')->getRepository('BlogCommonBundle:Comment')->findBy(['post' => $postID], ['created' => 'DESC']);