我尝试从简单查询中返回数据,但是我收到以下错误:
未捕获的PHP异常Doctrine \ ORM \ Query \ QueryException:" [语义 错误]第0行,第63行附近' user_id =:u':错误:类 \ Bundle \ MyBundle \ Entity \ User \ Users没有名称的字段或关联 USER_ID" at ... ../ doctrine / orm / lib / Doctrine / ORM / Query / QueryException.php 第49行
实体:
/**
* Users
*
* @ORM\Table(name="company.users")
* @ORM\Entity
*/
class Users
{
/**
* @var integer
*
* @ORM\Column(name="user_id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @ORM\SequenceGenerator(sequenceName="company.user_id_seq")
*/
private $userId;
控制器中的呼叫:
$query = $em->createQuery(
'SELECT u
FROM MyBundle:User\Users u
WHERE u.user_id = :user_id'
)->setParameter('user_id', 48201);
$users = $query->getResult();
答案 0 :(得分:1)
使用DQL时,您需要忘记SQL。您应该使用实体中定义的列名不在数据库中 - 使用userId
而不是user_id
:
$query = $em->createQuery(
'SELECT u
FROM MyBundle:Users u
WHERE u.userId = :user_id'
)->setParameter('user_id', 48201);
我也不确定MyBundle:User\Users
语法。为什么不使用MyBundle:Users
?