【问题标题】:Extbase Repository objectType = NULLExtbase 存储库 objectType = NULL
【发布时间】:2015-06-15 14:39:16
【问题描述】:

我们正在将 4.5 扩展迁移到 7.2。一种特殊情况很奇怪。尝试获取 findOneByUid 会导致“没有给出类名来检索数据映射”。错误。

通过另一个对象访问并使用 DebuggerUtility 它允许我们导航到失败的对象,我们可以看到,objectType 为 NULL。

任何线索在哪里搜索?所有其他对象都可以通过 findOneByUid 访问。

您将如何着手查找问题?

【问题讨论】:

    标签: typo3 extbase


    【解决方案1】:

    添加以下行解决了问题...知道如何避免这种情况吗?

    public function __construct() { $this->objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager'); $this->objectType = \TYPO3\CMS\Core\Utility\ClassNamingUtility::translateRepositoryNameToModelName($this->getRepositoryClassName()); }

    【讨论】:

    • 您是否对 TCA 中的类型字段和 TS 中的子类型进行了一些操作?例如。您的 Component 和 ComponentContent 域模型是从同一个数据库表派生的,并且是某些不同模型的子类型吗?如果是,可能是您的 TS 存在问题 - 您可以仔细检查。
    【解决方案2】:

    对象类型只能是null 如果存储库的构造函数已在子类中被覆盖而没有调用父构造函数。 parent::__construct();

    您应该使用方法initializeObject,而不是使用构造函数,该方法在构造函数之后被调用并且可以安全地被覆盖。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多