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 前端未找到新字段的主要内容,如果未能解决你的问题,请参考以下文章