gpt4 book ai didi

Symfony2 - 如何使用原则 2 中的条件查询左连接

转载 作者:行者123 更新时间:2023-12-02 10:23:43 25 4
gpt4 key购买 nike

我的数据库结构如下所示:

用户<->个人<->学校

因此个人对象保存有关用户和学校的信息,如下所示:

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。第二个查询没有返回学校! :(

如何获取用户的所有学校?

最佳答案

你第二次尝试就几乎成功了:

$query = $qb
->select('school')
->from('AppBundle:School', 'school')
->leftJoin('school.personal', 'personal')
->leftJoin('personal.user', 'user')
->where('user.id = :userId')
->setParameters(array(':userId' => $user->getId()))
->getQuery();

关于Symfony2 - 如何使用原则 2 中的条件查询左连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34305716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com