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