Typo3 QueryBuilder как поиск по типу с динамическим параметром

#typo3 #sql-like #query-builder

Вопрос:

Использование Typo3 QueryBuilder как аналогичного поиска с динамическим параметром не работает. Если я заменю переменную статической строкой, то получу ожидаемый результат

 public function getAutocompleteData($query)
{
    $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_kesearch_index');

    $queryBuilder->select('title')
        ->from('tx_kesearch_index')
        ->where(
            $queryBuilder->expr()->like(
                'title',
                $queryBuilder->createNamedParameter('%' . $queryBuilder->escapeLikeWildcards($query)) // 'test' works
            )
        );


    debug($queryBuilder->getSQL());
    $data = $queryBuilder->execute();
  
    return $data->fetchAll();
}
 

введите описание изображения здесь
В чем здесь разница? Как правильно использовать динамические значения?

Ответ №1:

Может быть, это из-за пропажи % в конце:

$queryBuilder->createNamedParameter('%' . $queryBuilder->escapeLikeWildcards($query) . '%')

Комментарии:

1. спасибо за обратную связь, похоже, это не работает, я прикрепил скриншот об отладке. Я думаю, это из-за цитат