我创建了一个后端扩展,并通过4个额外的字段扩展了fe_user。
我正在使用TYPO3 7.6.13。
4个自定义字段在后端列表中可见,但字段在前端不可用。
我需要在我的字段中扩展任何“特殊”列表吗?我的TCA配置如下。
ExtensionManagementUtility::addTCAcolumns('fe_users', $temporaryColumns);
ExtensionManagementUtility::addToAllTCAtypes('fe_users', 'field1', '', 'after:image');
ExtensionManagementUtility::addToAllTCAtypes('fe_users', 'field2', '', 'after:field1');
ExtensionManagementUtility::addToAllTCAtypes('fe_users', 'field3', '', 'after:field2');
ExtensionManagementUtility::addToAllTCAtypes('fe_users', 'field4', '', 'after:field3');
ExtensionManagementUtility::addToAllTCAtypes(
'fe_users',
'field1, field2, field3, field4'
);
还有更多的待办事项还是我遇到某种错误?
答案 0 :(得分:2)
要扩展现有的extbase模型,需要执行以下步骤:
这应该足以使用TYPO3后端内的字段。 对于前端渲染,您还需要两个步骤:
config.tx_extbase.persistence.classes
据我所知,你做了前3个步骤,但可能错过了最后一步?
完整示例(ext_typoscript_setup.txt,普通的TypoScript文件也应该有效):
config.tx_extbase {
persistence {
classes {
TYPO3\CMS\Extbase\Domain\Model\FrontendUser {
subclasses {
0 = YourVendor\YourextNamespace\Domain\Model\YourClass
}
}
}
}
}
这对于许多表来说应该足够了,但fe_users
使用recordType
字段。要进行配置,您需要以下TypoScript代码段(与config.tx_extbase
配置相同的文件):
config.tx_extbase {
persistence {
classes {
YourVendor\YourextNamespace\Domain\Model\YourClass {
mapping {
tableName = fe_users
recordType = 0
}
}
}
}
这会强制extbase忽略recordType
并始终使用您的模型。
文档/完整示例(包括recordType
解释):https://docs.typo3.org/typo3cms/ExtbaseFluidBook/6-Persistence/5-modeling-the-class-hierarchy.html
答案 1 :(得分:0)
您必须将字段添加到模型中。在您的域中,您将拥有一个fe_user存储库,该存储库将映射到真实的fe_user表。
如果您向fe_user添加字段,则还必须将它们添加到fe_user模型中。
你有没有想过这个?