原则-返回定义类型的结果

时间:2019-07-04 09:58:05

标签: php symfony doctrine-orm doctrine symfony-3.4

在我的数据库中,我具有由“类型”字段定义的数据,例如:

const TYPE_ONE = 'one';
const TYPE_TYPE = 'two';

我想返回所有由两个常量定义的“类型”值的结果,而不是全部返回。 (例如(NULL)类型)。

似乎不支持OR运算符。

我的代码:

return $this->getMyEntityRepository()->findBy([
            'type' => MyEntity::TYPE_ONE || MyEntity::TYPE_TWO
        ]);

1 个答案:

答案 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();

您还可以为要查找的类型指定参数。