Doctrine orm 条令扩展解析器

Doctrine orm 条令扩展解析器,doctrine-orm,Doctrine Orm,我想扩展条令解析器:Doctrine\ORM\Query\Parser。详细地说,我想添加一个自定义查询所需的比较运算符 在不更改文件的情况下是否可以执行此操作? 但是可以创建一个变通方法来添加@>功能 class JsonbContains extends FunctionNode { public $identifier = null; public $value = null; public function parse(\Doctrine\ORM\Query\P

我想扩展条令解析器:
Doctrine\ORM\Query\Parser
。详细地说,我想添加一个自定义查询所需的
比较运算符

在不更改文件的情况下是否可以执行此操作?

但是可以创建一个变通方法来添加@>功能

class JsonbContains extends FunctionNode
{
    public $identifier = null;
    public $value = null;

    public function parse(\Doctrine\ORM\Query\Parser $parser)
    {
        $parser->match(Lexer::T_IDENTIFIER);
        $parser->match(Lexer::T_OPEN_PARENTHESIS);
        $this->identifier = $parser->ArithmeticPrimary();
        $parser->match(Lexer::T_NONE);
        $parser->match(Lexer::T_GREATER_THAN);
        $this->value = $parser->ArithmeticPrimary();
        $parser->match(Lexer::T_CLOSE_PARENTHESIS);
    }

    public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
    {
        return '(' .
        $this->identifier->dispatch($sqlWalker) . ' @> ' .
        $this->value->dispatch($sqlWalker) .
        ')';
    }
}

SELECT p
FROM AppBundle:Project p
WHERE JSONB_CONTAINS( p.values @> '{\"ACTIVE\": \"1\"}' ) = TRUE