- Заказы // Заказы
- Комментарии // комментарии для каждого заказа
Я хотел бы найти последний комментарий, написанный в этом порядке.
Мой
Контроллер:
$orders = $this->getDoctrine()->getRepository(Orders::class)->findAll();
foreach($orders as $order) {
$temp = array(
$order->getId(),
$order->getComments()->findLatest( $order->getId() )
Сущность (Комментарии):
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Orders", inversedBy="comments")
*/
private $orders;
Entity (Order):
/**
* @return Collection|Comment[]
*/
public function getComments(): Collection
{
return $this->comments;
}
Репозиторий комментариев:
public function findLatest($value)
{
return $this->createQueryBuilder('c')
->andWhere('c.orders = :val')
->setParameter('val', $value)
->orderBy('c.id', 'DESC')
->setMaxResults(1)
->getQuery()
->getResult()
;
}
Но похоже, что он не работает таким образом :(
Ошибка:
Attempted to call an undefined method
named "findLatest" of class "Doctrine\ORM\PersistentCollection".