首页 > 解决方案 > symfony 学说查询构建器 where(arraycollection 中的变量)

问题描述

我想按类别获取特征。

我收到了这个错误

[语法错误] 第 0 行,第 95 列:错误:预期的 Doctrine\ORM\Query\Lexer::T_OPEN_PARENTHESIS,得到“类别”

错误截图

特征实体的关系:

/**
 * @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();

标签: symfonydoctrine-ormwhere-in

解决方案


感谢您的评论。

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

这是代码:

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

推荐阅读