我有一个实体:
...
class UserRole extends Role
{
/**
* @ORM\Column(name="user_role_id", type="integer")
* @ORM\Id()
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
...
但是当我尝试在doctrine查询中使用user_role_id时,我收到此错误:
[语义错误]第0行,第42页'user_role_id'附近:错误:类 MyApp \ Model \ UserRole没有名为user_role_id的字段或关联
我使用的查询是:
$query = $this->getEntityManager()
->createQuery('SELECT r FROM Model:UserRole AS r WHERE r.user_role_id IN (:roles)')
->setParameter('roles', array_values($roles));
我肯定有一个user_role_id字段,因为我可以在phpMyAdmin中看到它。
有没有人知道为什么教义不承认呢?
答案 0 :(得分:1)
这是一个学说,你想编写一个DQL而不是一个SQL,你需要使用实体中定义的字段名称而不是列名。
因此,在您的查询中,只需使用r.id
代替r.user_role_id