TYPO3 10.4 前端未找到新字段

Posted

技术标签:

【中文标题】TYPO3 10.4 前端未找到新字段【英文标题】:TYPO3 10.4 new fields not found in frontend 【发布时间】:2021-01-14 16:07:33 【问题描述】:

我使用扩展生成器扩展了数据库表fe_users 的新字段。这些字段在后端用户界面中可见,但在 Typo3 10.4.x 的前端中不可用。但是相同的代码在 Typo3 9.x 前端和后端都能正常工作。

我也尝试在 ext_typoscript_setup.typoscript 中将 recordType 设置为空,但这也无济于事

mapping 
    tableName = fe_users
    recordType = 

还有什么要寻找的想法吗?

【问题讨论】:

迈克尔写的绝对正确。看看这里。 ***.com/questions/60616920/… 【参考方案1】:

Extbase 持久性的表映射在 TypoScript 中不再可能。将您的 TypoScript 迁移到名为 EXT:myextension/Configuration/Extbase/Persistence/Classes.php 的 PHP 文件。

更多详情请参阅breaking change 87623。

典型的Classes.php 文件如下所示。

<?php

return [
  \Vendor\Extension\Domain\Model\Object::class => [
    'tableName' => 'tx_extension_domain_model_object',
  ]
];

【讨论】:

【参考方案2】:

这就是我实现它的方式。必须在迈克尔的回复中添加一行(即“子类”)。 (这也在 Typo3 11.x 中测试过)

我的配置/Extbase/Persistence/Classes.php

<?php
declare(strict_types=1);

return [
    \TYPO3\CMS\Extbase\Domain\Model\FrontendUser::class => [
      'subclasses' => [
          '\T3IN\T3inStores\Domain\Model\UserStore' => \T3IN\T3inStores\Domain\Model\UserStore::class,
      ]        
    ], 
    \T3IN\T3inStores\Domain\Model\UserStore::class => [
        'tableName' => 'fe_users',
        'recordType' => 'Tx_T3inStores_UserStore',
    ],
];

Ref

对于每个附加的超类,所有子类都必须在子类下声明 recordType :查找模型的 TCA 以获取此值。或者在创建该类型的记录后查找数据库。

【讨论】:

以上是关于TYPO3 10.4 前端未找到新字段的主要内容,如果未能解决你的问题,请参考以下文章

TYPO3 前端用户存储库

TYPO3 Fluidpages 未加载或没有自动加载器

前端图片上传并在typo3中构建文件引用

Gridelements - TYPO3 10.4 和 Fluidtemplates

TYPO3 10.4 中一个根页面的多域设置?

当流体页面导致后端和前端出现错误时,如何重新访问 TYPO3 的后端?