вернуть массив объектов по внешнему ключу из таблицы базы данных

У меня есть база данных, это выглядит так:

Entity: Post, Comment. Комментарий имеет внешний ключ post_id.

Мне нужно получить комментарии, которые принадлежат конкретному сообщению по его идентификатору. И сортировать его методом getCreated ().

Проблема в том, когда я пытаюсь найти все комментарии по post_id, например:

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

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

Я получаю ..CommonBundle\Entity\Comment' has no field 'postId'.
Вероятно, потому что его внешний ключ.

Есть ли способ, как это сделать?

Большое спасибо!

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']);
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]