我有一个数据库,它看起来像这样:
实体:发布,评论..评论有一个外键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'.
可能是因为它的外键。
有什么办法,该怎么做?
非常感谢!
答案 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']);