【发布时间】:2017-12-08 19:30:21
【问题描述】:
当我尝试执行以下查询时收到[Syntax Error] line 0, col 95: Error: Expected Literal, got 'value' 错误:
$qb = $this->createQueryBuilder('a');
$qb
->join('a.categories', 'cat')
->where($qb->expr()->in('cat.name', $category));
return $qb->getQuery()->getResult();
映射的字段如下:
/**
* @ORM\ManyToMany(targetEntity="Camten\TestBundle\Entity\Category", cascade={"persist"}, inversedBy="articles")
*/
private $categories;
以为是数据类型的问题,但我真的找不到问题所在。
【问题讨论】:
-
什么是
$category? -
$category是我设置为方法参数的变量 -
public function getAvecCategory($category){ $qb = $this->createQueryBuilder('a'); $qb->join('a.categories', 'cat')->where($qb->expr()->in('cat.name', $category)); return $qb->getQuery()->getResult(); } -
对不起,我的意思是:什么包含
$category:id、Object、类别名称? -
类别名称。我认为这就是问题所在,但即使它是一个 id,我也会收到一个错误页面
标签: symfony doctrine-orm query-builder