首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TYPO3 / Extbase: Datamapper不再使用TYPO3 9.5.x

TYPO3 / Extbase: Datamapper不再使用TYPO3 9.5.x
EN

Stack Overflow用户
提问于 2019-06-04 10:30:55
回答 2查看 1.6K关注 0票数 0

在较早的TYPO3版本(如TYPO3 8.7.x )中,我使用DataMapper将查询生成器选择结果的结果映射到对象数组。这在TYPO3 8.7.x中运行良好,但在TYPO3 9.5.x中,我得到了错误消息“调用null上的成员函数buildDataMap()”。

代码语言:javascript
复制
//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);
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-04 10:39:44

有些类需要其他对象作为依赖项。如果属性是用TYPO3注释的,或者如果有匹配的injectPropertyName方法,则在@inject中是这样的。

在这种情况下,应该使用DataMapper实例化类(在本例中为ObjectManager )。

通常看起来是这样的:

代码语言:javascript
复制
$dataMapper = GeneralUtiity::makeInstance(ObjectManager::class)->get(DataMapper::class);
票数 4
EN

Stack Overflow用户

发布于 2021-01-07 13:01:51

由于get方法的ObjectManager在TYPO3版本10中被标记为不推荐使用,所以我使用inject连接来获取DataMapper实例

代码语言:javascript
复制
    /**
     * Datamaper
     *
     * @var DataMapper
     * @TYPO3\CMS\Extbase\Annotation\Inject
     */
    protected $dataMapper;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56442092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档