Я переношу старое расширение TYPO3 в текущую сборку и пытаюсь изменить доступ к моей базе данных, используя doctrine. По большей части это работало замечательно, но теперь я наткнулся на несколько запросов на выборку, которые используют SQL -функции, например, «Год (FROM_UNIXTIME ())».
Я пытался использовать sql функция как есть в следующем виде:
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('mytable');
$queryBuilder
->select('i.*','c.title AS cat_title','c.uid AS cat_uid')
->from('mytable','i')
->join('c'
...
)
->join('d'
...
)
->where(
$queryBuilder->expr()->eq('Year(FROM_UNIXTIME(i.datetime))', $queryBuilder->createNamedParameter($year, \PDO::PARAM_STR))
)
Проблема только в части where, если я получаю считывание оператора SQL, предложение where просто пропускается, как если бы строка кода никогда не было.
Затем я приступил к созданию операторов отладки вокруг оператора where и инкапсулировал его в блок try catch с прикрепленным к нему журналом: он выполняется нормально, без ошибок, но ничего не делает.
После Google, я теперь считаю, что мне нужно было бы снова реализовать эту функцию с помощью пользовательских функций DQL , но документация на сайте typo3 не содержит упоминаний об этом, и поэтому я немного не знаете, как поступить.
Может ли кто-нибудь указать мне правильное направление?
Любая помощь будет высоко ценится
С уважением, Тео