<?php namespace App\DQL; use Doctrine\ORM\Query\AST\Functions\FunctionNode; use Doctrine\ORM\Query\Lexer; class StrToDate extends FunctionNode { public $dateString = null; public $dateFormat = null; public function parse(\Doctrine\ORM\Query\Parser $parser) { $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); $this->dateString = $parser->ArithmeticPrimary(); $parser->match(Lexer::T_COMMA); $this->dateFormat = $parser->ArithmeticPrimary(); $parser->match(Lexer::T_CLOSE_PARENTHESIS); } public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker) { return 'STR_TO_DATE(' . $this->dateString->dispatch($sqlWalker) . ', ' . $this->dateFormat->dispatch($sqlWalker) . ')'; } }