1

fe_users使用扩展生成器扩展了带有新字段的数据库表。这些字段在后端用户界面中可见,但在 Typo3 10.4.x 的前端中不可用。但是相同的代码在 Typo3 9.x 前端和后端中运行良好。

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

mapping {
    tableName = fe_users
    recordType = 
}

关于更多寻找的任何想法?

4

2 回答 2

3

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

有关详细信息,请参阅重大更改 87623

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

<?php

return [
  \Vendor\Extension\Domain\Model\Object::class => [
    'tableName' => 'tx_extension_domain_model_object',
  ]
];
于 2020-09-29T06:10:24.463 回答
0

这就是我实现它的方式。必须在迈克尔的回复中添加一行(即“子类”)。(这也在 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',
    ],
];

参考

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