在前端找不到 TYPO3 10.4 新字段

TYPO3 10.4 new fields not found in frontend

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

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

mapping {
    tableName = fe_users
    recordType = 
}

关于还需要寻找什么的任何想法?

Extbase 持久性的 table 映射在 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',
  ]
];

我就是这样实现的。还有一行(即 'subclasses')必须添加到 Michael 的回复中。 (这也在 Typo3 11.x 中进行了测试)

我的Configuration/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 以获取此值。或者在创建该类型的记录后查找数据库。