У меня небольшая проблема с запросом через QueryBuilder.
Я получил два объекта модели на родительской странице, которая имеет две дочерние страницы с одним элементом содержимого каждая, каждая из которых обрабатывает один объект модели. На родительской странице должен отображаться список со ссылками на все дочерние страницы вместе с некоторыми данными объектов модели.
У меня есть объекты модели и UID дочерних страниц из-за их общего PID. Приняв JOIN на столах, я получаю четыре результата вместо двух - это нормально. Я должен ограничить свой запрос. Я решил использовать заголовки объектов и дочерних страниц. Они отличаются только одной маленькой деталью.
Но я не могу выполнить ограничение LIKE в предложении WHERE - все, что я получаю, это пустой результат. Я уверен, что что-то упускаю, но я не удалось найти ни одного примера для динамических c значений поля таблицы с ограничением LIKE - все они имеют постоянное значение, такое как известная строка или целое число.
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('pages');
$result = $queryBuilder
->select('pages.uid AS target','tx_myext_domain_model_item.*')
->from('pages')
->leftjoin(
'pages',
'tx_myext_domain_model_item',
'tx_myext_domain_model_item',
$queryBuilder->expr()->eq('pages.pid',$queryBuilder->quoteIdentifier('tx_myext_domain_model_item.pid'))
)
->where(
$queryBuilder->expr()->eq('pages.pid',$queryBuilder->quoteIdentifier('tx_myext_domain_model_item.pid')),
$queryBuilder->expr()->like('pages.title',$queryBuilder->createNamedParameter('%'.quoteIdentifier('tx_myext_domain_model_item.title').'%'))
)
->execute()
->fetchAll();
Примеры заголовка:
- заголовок объекта: «Lorem ipsum dolor sit amet, conctetuer adipiscing elit»
- заголовок дочерней страницы: «Lorem ipsum dolor sit amet, conctetuer
adipiscing elit: KZr0XY3Z "