2015-12-22 1 views
4

Мне нужно сделать довольно сложный запрос к моей базе данных, и кажется, что запросы extbase не могут делать то, что мне нужно (например, мне нужны все категории со статьей count> 0). Итак, я создал запрос и выполнил его с помощью exec_SELECTgetRows - теперь есть способ сопоставить результат с объектами?typo3 extbase: есть ли способ сопоставить результаты exec_SELECTgetRows с объектами?

Буду благодарен за любые намеки.

+2

Может быть, вы уже рассмотрели, но не будет '' '$ query-> statement''' быть достаточно для ваших нужд? – lorenz

ответ

6

Вы можете добиться этого путем ручного запуска PropertyMapper. Проверьте об этом Flow docs. Концепция 1: 1 такая же в ExtBase.

Некоторые примеры кода в вашем случае может быть следующее:

$objectStorage = $this->objectManager->get(ObjectStorage::class); 
$propertyMapper = $this->objectManager->get(PropertyMapper::class); 
$dataArray = $this->db->exec_SELECTgetRows(...); 
foreach($dataArray as $data) { 
    $dataObject = $propertyMapper->convert($data, \Your\Custom\Object::class); 
    $objectStorage->attach($dataObject); 
}