ExtBase 已经为现有的表 fe_user 提供了一个域模型。这个领域模型是:
Tx_Extbase_Domain_Model_FrontendUser
它包含 TYPO3 附带的所有默认 fe_users 字段。
如果您使用自己的字段扩展了 fe_users,则还必须扩展 Tx_Extbase_Domain_Model_FrontendUser 域模型和关联的存储库,以便它知道您添加到 fe_users 的新字段。
关联的存储库是:
Tx_Extbase_Domain_Repository_FrontendUserRepository
您必须为存储库设置存储 PID,以便它可以找到您的 fe_users。
对于前端插件中使用的控制器操作,请使用:
plugin.your_plugin {
persistence {
storagePid = somePid, anotherPid
}
}
如果后端模块中使用的控制器操作使用:
module.your_module {
persistence {
storagePid = somePid, anotherPid
}
}
据我所知,无法将 TYPO3 附带的相同对话框用于您自己的扩展,因此您必须在后端模块中创建自己的操作(新建/编辑/显示)和表单。
[编辑]
默认情况下,ExtBase 假设所有 fe_users 都分配了一个记录类型。当您打开一个前端用户时,您将看到“扩展”选项卡包含一个下拉字段,该字段标记为“记录类型”。如果未设置此字段,ExtBase 将无法使用存储库中的一种查找方法找到 fe_user。
您应该为所有 fe_users 设置记录类型(推荐方式),或者您可以通过在设置中使用以下 TS 来禁用到字段的映射
config.tx_extbase.persistence.classes {
Tx_Extbase_Domain_Model_FrontendUser {
mapping.recordType >
}
}
对于新创建的 fe_users 或 fe_groups,您可以通过将以下 TS 添加到您的根页面 TS 来设置“记录类型”字段的默认值
TCAdefaults.fe_users.tx_extbase_type = Tx_Extbase_Domain_Model_FrontendUser
TCAdefaults.fe_groups.tx_extbase_type = Tx_Extbase_Domain_Model_FrontendUserGroup