symfony doctrine query builder 其中(arraycollection 中的变量)

symfony doctrine query builder where (variable in arraycollection)

我想按类别获取特征。

我遇到了这个错误

[语法错误] 第 0 行,第 95 列:错误:应为 Doctrine\ORM\Query\Lexer::T_OPEN_PARENTHESIS,得到 'categories'

error screenshot

特征实体中的关系:

/**
 * @ORM\ManyToMany(targetEntity="App\Entity\Category", inversedBy="characteristics")
 */
private $categories;

我的查询生成器函数:

$this->createQueryBuilder('characteristic')
 ->leftJoin('characteristic.categories', 'categories')
 ->andWhere(':category in categories')
 ->setParameter('category', $category)
 ->getQuery()
 ->getOneOrNullResult();

感谢评论。

我使用 MEMBER OF 语句解决了这个问题。

代码如下:

$this->createQueryBuilder('characteristic')
 ->andWhere(":category MEMBER OF characteristic.categories")
 ->setParameter('category', $category)
 ->getQuery()
 ->getOneOrNullResult()
        ;