我在两个实体Collaborateur和Conge之间有关系ManyToOne。
/**
* @ORM\ManyToOne(targetEntity="Collaborateur", inversedBy="collaborateur", cascade={"remove"})
* @ORM\JoinColumn(name="collaborateur_id", referencedColumnName="id")
*/
protected $collaborateur;
在我的CongeManager中,我有这个功能:
public function findCongeByCollaborateur ($collaborateur){
return $this->getRepository()->findOneBy(array('collaborateur'=>$collaborateur));
}
它只返回Conge的第一个元素,我想得到最后一个。
答案 0 :(得分:25)
$this->getRepository()->findOneBy(
array('collaborateur'=>$collaborateur),
array('id' => 'DESC')
);
答案 1 :(得分:0)
您应该创建自定义实体存储库。如何执行此操作可以在以下链接中找到:http://symfony.com/doc/current/book/doctrine.html#custom-repository-classes
public function getLastCongeByCollaborateur($collaborateur) {
return $this->getEntityManager()
->createQuery('SELECT conge FROM FullBundleName:Conge conge WHERE collaborateur = :collaborateur ORDER BY conge.id DESC)
->setParameter('collaborateur', $collaborateur)
->getResult();
}
按降序排序,将返回找到的最后一个元素。