1
我嘗試添加我的自定義sql函數。Doctrine2 Symfony2自定義函數解析器
我的功能是這樣的:
DISTANCE(15.154454, 5.121444, -15.321111, 15.12111)
我添加此解析器解析它:
use Doctrine\ORM\Query\Lexer;
class Distance extends \Doctrine\ORM\Query\AST\Functions\FunctionNode
{
public $lat_a = null;
public $lat_b = null;
public $lon_a = null;
public $lon_b = null;
public function parse(\Doctrine\ORM\Query\Parser $parser)
{
$parser->match(Lexer::T_IDENTIFIER);
$parser->match(Lexer::T_OPEN_PARENTHESIS);
$this->lat_a = $parser->ArithmeticPrimary();
$parser->match(Lexer::T_COMMA);
$this->lon_a = $parser->ArithmeticPrimary();
$parser->match(Lexer::T_COMMA);
$this->lat_b = $parser->ArithmeticPrimary();
$parser->match(Lexer::T_COMMA);
$this->lon_b = $parser->ArithmeticPrimary();
$parser->match(Lexer::T_CLOSE_PARENTHESIS);
}
public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
{
return 'DISTANCE(' .
$this->lat_a->dispatch($sqlWalker) . ', ' .
$this->lon_a->dispatch($sqlWalker) . ', ' .
$this->lat_b->dispatch($sqlWalker) . ', ' .
$this->lon_b->dispatch($sqlWalker) .
')';
}
}
它的確定,這項工作很好,但是當我使用像「-15.321111」負無功,我得到一個錯誤500 ... 隨着積極的變種,所有沒關係。
任何人都可以幫我解析負面的var?
它是幫助確定THX。 我只是在解析中使用ArithmeticExpression,並且一切正常。 –