Symfony2 / Doctrine2 ManyToMany DQL“没有名为”的关联错误

时间:2012-09-30 22:07:17

标签: orm symfony doctrine-orm

我正在尝试制作一个DQL查询,它一直给我这个错误:

[Semantical Error] line 0, col 68 near 'r': Error: Class Custom\SystemBundle\Entity\Element has no association named CustomAuthBundle:Role

这些实体的代码如下所示:

作用:

 /**
 * @ORM\ManyToMany(targetEntity="Custom\SystemBundle\Entity\Element", mappedBy="role_id")
 */
 private $element_id;

元素:

/**
 * @ORM\ManyToMany(targetEntity="Custom\AuthBundle\Entity\Role", inversedBy="element_id")
 */
private $role_id;

以下是查询:

php app/console doctrine:query:dql 'SELECT e FROM CustomSystemBundle:Element e JOIN e.CustomAuthBundle:Role r'

1 个答案:

答案 0 :(得分:2)

  1. 您定义了对象模型,因此无法role_idelement_id。对象将存储在那里,而不是它们的标识符。所以abc_idabc
  2. 关联由属性定义,而不是类名:

    […] JOIN e.role r […]