в более старых версиях Typo3, таких как Typo3 8.7.x Я использовал DataMapper, чтобы отобразить результаты из результатов выбора моего построителя запросов в массив объектов.Это нормально работает в Typo3 8.7.x, но в Typo3 9.5.x у меня появляется сообщение об ошибке « вызов функции-члена buildDataMap () со значением null ».
//MyRepository.php
namespace Vendor\MyExtension\Domain\Repository;
use TYPO3\CMS\Core\Database\ConnectionPool;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapper;
/**
* @param string $search
*
* @return array
*/
public function findBySearch($search)
{
$querybuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_myextension_domain_model_produkt');
$records = $querybuilder->select('tx_myextension_domain_model_produkt.*')
->from('tx_myextension_domain_model_produkt')
->orWhere(
$querybuilder->expr()->like('titel', $querybuilder->createNamedParameter('%' . $search . '%')),
$querybuilder->expr()->like('untertitel', $querybuilder->createNamedParameter('%' . $search . '%'))
)
->orderBy('titel')
->execute()
->fetchAll();
$dataMapper = GeneralUtility::makeInstance(DataMapper::class);
return $dataMapper->map($this->objectType, $records);
}