Я пытаюсь вызвать функцию, созданную функцией, в Entity Repository
public function getBillGroupByDate($dateStart, $dateEnd) {
return $query = $this->createQueryBuilder('d')
->select('count(d) as nb, SUBSTRING(d.created, 1, 10) as bill_date')
->having('DATE(bill_date) BETWEEN :from AND :to')
->groupBy('bill_date')
->orderBy('d.created', 'ASC')
->setParameter('from', $dateStart)
->setParameter('to', $dateEnd)
->getQuery()
->getResult();
}
Я использую пакет berberlei, который создал доктрину для самой необходимой функции DQL.Дата функции выглядит хорошо
<?php
namespace DoctrineExtensions\Query\Mysql;
use Doctrine\ORM\Query\AST\Functions\FunctionNode;
use Doctrine\ORM\Query\Lexer;
/**
* @author Steve Lacey <steve@stevelacey.net>
*/
class Date extends FunctionNode
{
public $date;
public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
{
return 'DATE(' . $sqlWalker->walkArithmeticPrimary($this->date) . ')';
}
public function parse(\Doctrine\ORM\Query\Parser $parser)
{
$parser->match(Lexer::T_IDENTIFIER);
$parser->match(Lexer::T_OPEN_PARENTHESIS);
$this->date = $parser->ArithmeticPrimary();
$parser->match(Lexer::T_CLOSE_PARENTHESIS);
}
}
, но по причине, которую я не знаю, у меня всегда есть исключение, может быть потому, что имя столбца является псевдонимом и не существует на самом деле?
Уведомление о внутренней ошибке HTTP 500: неопределенный индекс: метаданные Исключение Symfony \ Component \ Debug \ Exception \ ContextErrorException в vendor \ doctrine \ orm \ lib \ Doctrine \ ORM \ Query \ SqlWalker.php (строка604) * * @return string * / открытая функция walkEntityIdentificationVariable ($ identVariable) {$ class = $ this-> queryComponents [$ identVariable] ['metadata'];$ tableAlias = $ this-> getSQLTableAlias ($ class-> getTableName (), $ identVariable);$ sqlParts = array ();foreach ($ this-> quoteStrategy-> getIdentifierColumnNames ($ class, $ this-> platform) как $ columnName) {$ sqlParts [] = $ tableAlias.'',$ columnName;