Aşağıdaki sorgu var:Doctrine2'de ilişkili bir varlık sonucunu nasıl sınırlandırabilirim?
$query = $this->getEntityManager()->createQuery('
SELECT m FROM MyCoreBundle:Motivation m
WHERE m.user = :user
ORDER BY m.date DESC');
$query->setParameter('user',$user);
$query->setFirstResult(0);
$query->setMaxResults(1);
//@TODO if there is not result recorded for the user, return sth which indicates this
return $query->getResult();
:
$query = $this->getEntityManager()->createQuery('
SELECT u, p, m
FROM MyCoreBundle:User u
JOIN u.programmes p
JOIN u.motivation m
');
$result = $query->getResult();
Ben motivasyon kısıtlamak istediğiniz I (Motivasyon depo Açık) başka bir yerde kullanıyorum bu ikinci sorgunun sonucu olduğu her kullanıcı için döndürülen nesnelerin
İlk sorguda veya daha iyi bir yaklaşımda motivasyonu kısıtlamak ve kısıtlamak için bir yol var mı?
görmek ve öyle olacak çok erişilen, olası bir çözüm 'Kullanıcı: LatestMotivation' OneToOne relatinship oluşturmaktır. Ve sonra yeni bir "Motivasyon" varlığı eklendiğinde (Doktrini 'prePersist' etkinlikleri aracılığıyla) yeni eklenen ile' LatestMotivation'ı günceller. Bu şekilde, en son motivasyonu getiren birçok 'Kullanıcı' kaydı üzerinde yineleyebileceksiniz. HTH –