在我的数据库中,我具有由“类型”字段定义的数据,例如:
const TYPE_ONE = 'one';
const TYPE_TYPE = 'two';
我想返回所有由两个常量定义的“类型”值的结果,而不是全部返回。 (例如(NULL)类型)。
似乎不支持OR运算符。
我的代码:
return $this->getMyEntityRepository()->findBy([
'type' => MyEntity::TYPE_ONE || MyEntity::TYPE_TWO
]);
答案 0 :(得分:0)
OR
operator is supported,但是在原则上,您应该在存储库中为这种查询创建一个方法。
存储库:
class MyEntityRepository extends ServiceEntityRepository
{
public function findByType()
{
return $this->createQueryBuilder('r')
->andWhere('r.type IN (:types)')
->setParameter('types', [MyEntity::TYPE_ONE, MyEntity::TYPE_TWO])
->getQuery()
->getResult()
;
}
}
控制器:
return $this->getMyEntityRepository()->findByType();
您还可以为要查找的类型指定参数。