[英]How to get if children exists
我有兩個實體:
/**
* @ORM\Entity
* @ORM\Table(name="main")
*/
class Main
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\ManyToMany(targetEntity="Sub", mappedBy="mains")
* @ORM\OrderBy({"position" = "ASC"})
*/
protected $subs;
/**
* @ORM\Column(type="string", length=255)
*/
protected $name;
}
/**
* @ORM\Entity
* @ORM\Table(name="sub")
*/
class Sub
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var \Doctrine\Common\Collections\ArrayCollection
*
* @ORM\ManyToMany(targetEntity="Main", inversedBy="subs")
* @ORM\JoinTable(name="sub_main",
* joinColumns={
* @ORM\JoinColumn(name="sub_id", referencedColumnName="id")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="main_id", referencedColumnName="id")
* }
* )
*/
protected $mains;
/**
* @ORM\Column(type="string", length=255)
*/
protected $name;
}
它運作良好。 在控制器中我想獲得所有具有子(Sub)的Mains對象。
$em = $this->getDoctrine()->getManager();
$queryBuilder = $em->createQueryBuilder();
$qb->select('m, s')
->from('AppBundle:Main', 'm')
->where('ONLY MAINS WITH CHILDRENS (SUB)')
->leftJoin('m.subs', 's')
;
$mains = $qb->getQuery()->getResult();
那么where子句應該是什么條件?
我發現在簡單的SQL中我可以使用子查詢或運算符存在,但是如何在Symfony 2中的Doctrine中使用它?
你可以使用->where('m.subs IS NOT EMPTY');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.