添加自定義功能主義例如:
<?php
namespace Project\CustomBundle\Dql;
use Doctrine\ORM\Query\AST\Functions\FunctionNode;
use Doctrine\ORM\Query\Lexer;
use Doctrine\ORM\Query\SqlWalker;
use Doctrine\ORM\Query\Parser;
class YearFunction extends FunctionNode
{
private $arg;
public function getSql(SqlWalker $sqlWalker)
{
return sprintf('YEAR(%s)', $this->arg->dispatch($sqlWalker));
}
public function parse(Parser $parser)
{
$parser->match(Lexer::T_IDENTIFIER);
$parser->match(Lexer::T_OPEN_PARENTHESIS);
$this->arg = $parser->ArithmeticPrimary();
$parser->match(Lexer::T_CLOSE_PARENTHESIS);
}
}
在config.yml學說節
#config.yml
doctrine:
orm:
...
dql:
datetime_functions:
year: Project\CustomBundle\DqlYearFunction
謝謝ü你的答覆@ahmed ..there是關於原則擴展detaled介紹...無論如何,我會嘗試這種方式..謝謝 – 2014-09-13 11:51:55