【发布时间】:2014-10-08 10:16:54
【问题描述】:
我对 Symfony2 中的一些查询有疑问,我有 3 个实体(它们被简化了一点):
class Group
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255)
*/
protected $name;
/** @ORM\OneToMany(targetEntity="GroupMember", mappedBy="family") */
protected $groupMembers;
class GroupMember
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(name="group_member_type", type="integer")
*/
protected $groupMemberType;
/**
* @ORM\ManyToOne(targetEntity="Group", inversedBy="groupMembers")
* @ORM\JoinColumn(name="group_id", referencedColumnName="id", nullable=false)
*/
protected $group;
/**
* @ORM\ManyToOne(targetEntity="Test\UserBundle\Entity\User", inversedBy="memberships")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false)
*/
protected $user;
USER -> 标准 FOSuserbundle 用户
我想查询返回当前用户是组成员的所有组。谁能告诉我该怎么做?
这是我的尝试:
SELECT g FROM (group g INNER JOIN groupmember gm ON g.id=gm.group_id) INNER JOIN fos_user u ON gm.user_id = u.id WHERE u.id = 6
但它会返回
Unknown column 'g' in 'field list'
【问题讨论】:
-
您能否准确说明您的实体之间的关系?
-
我已经更新了我的问题
-
有什么理由不使用 Doctrine 的查询生成器?
-
不,查询生成器和 createQuery 对我来说没有区别,但问题是我无法在 sql 和查询生成器中编写正确的查询
标签: sql symfony doctrine-orm