typo3 extbase:有没有办法将 exec_SELECTgetRows 结果映射到实体?
typo3 extbase: is there a way to map exec_SELECTgetRows results to entities?
我必须对我的数据库进行相当复杂的查询,而且 extbase 查询似乎无法满足我的需要(例如,我需要文章数 > 0 的所有类别)。所以我创建了一个查询并使用 exec_SELECTgetRows 执行它 - 现在,有没有办法将结果映射回实体?
如有任何提示,我将不胜感激。
您可以通过手动触发 PropertyMapper
来实现。检查Flow docs关于它。这个概念在 ExtBase 中 1:1 相同。
您的案例中的一些示例代码可能如下:
$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);
}
我必须对我的数据库进行相当复杂的查询,而且 extbase 查询似乎无法满足我的需要(例如,我需要文章数 > 0 的所有类别)。所以我创建了一个查询并使用 exec_SELECTgetRows 执行它 - 现在,有没有办法将结果映射回实体?
如有任何提示,我将不胜感激。
您可以通过手动触发 PropertyMapper
来实现。检查Flow docs关于它。这个概念在 ExtBase 中 1:1 相同。
您的案例中的一些示例代码可能如下:
$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);
}