我的數據庫結構如下:Symfony2的 - 如何查詢符合條件的學說左加入2
用戶< - >個人< - >學校
所以個人對象保存有關信息用戶和學校這樣的:
class Personal
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\ManyToOne(targetEntity="user", inversedBy="schools", fetch="EAGER")
*/
private $user;
/**
* @var string
*
* @ORM\ManyToOne(targetEntity="school", inversedBy="personal", fetch="EAGER")
*/
private $school;
}
所以我想獲取一個用戶的學校:
$query = $qb
->select('school')
->from('AppBundle:School', 'school')
->leftJoin('school.personal', 'p', 'WITH', 'p.user = :user')
->setParameters(array(':user' => $user))
->getQuery();
我也試過如下:
$query = $qb
->select('school')
->from('AppBundle:School', 'school')
->leftJoin('u.personal', 'personal')
->leftJoin('personal.user', 'pu')
->where('pu = :user')
->setParameters(array(':user' => $user))
->getQuery();
但沒有任何工程。第一個讓我回到所有的學校:S。第二個查詢沒有回校! :(
我怎樣才能得到所有學校用戶
什麼是$ QB? $ qb = $ em-> getRepository(「AppBundle:Personal」)?? – bluesky
看看http://stackoverflow.com/questions/23454217/doctrine2-association-mapping-with-conditions 這是解決使用標準的API那裏 – DerStoffel