当前位置: 首页 > 知识库问答 >
问题:

TYPO3/如何从现有表fe_用户创建存储库?

姬俊能
2023-03-14

我正在用Extbase和Fluid创建一个特殊的BE模块,我需要一个表示标准FE用户的域对象。当我创建名为Feuser的新域对象并保存它时,扩展生成器会创建特殊的存储库,并希望在数据库中创建特殊的表tx_myextkey_Feuser。但此表已作为fe_用户存在。

是否可以告诉typo3 Feuser对象的存储库已经存在(如fe_users表),并且typo3应该使用现有的存储库?我该怎么做?

我需要它,因为扩展(包括这个BE模块)需要在同一个地方(这个BE模块)有每个逻辑和控件。

一般来说,如果可能的话,我需要在两个地方为新FE用户提供相同的插入对话框。如果没有,我可以创建自己的新/编辑/显示操作,但我需要告诉TYPO3,它应该与FE用户一起使用现有的存储库。

我使用的是打字错误4.7。3.

共有2个答案

夹谷英杰
2023-03-14

对于Extbase 6。十、

您需要在extension builder中的“扩展现有模型类”字段中指定类\TYPO3\CMS\Extbase\Domain\Model\FrontendUser,而不是Tx\u Extbase\u Domain\u Repository\u FrontendUserRepository

之后,您可以控制模型中的fe_users......

还添加文件ext_typoscript_setup.txt在您的扩展根目录(自动添加,如果通过extension_builder生成)

config.tx_extbase{
    persistence{
        classes{

            TYPO3\CMS\Extbase\Domain\Model\FrontendUser {
                subclasses {
                    Tx_Extendfeuser_Extended = Model_class_with_namespace
                    
                }
            }
            Vendor\EXt\Domain\Model\Extended {
                mapping {
                    tableName = fe_users
                    recordType = Tx_Extendfeuser_Extended
                }
            }
            
        }
    }
}

谢谢

适用于TYPO3 7.6。X也是

赵镜
2023-03-14

ExtBase已经为现有表fe_用户提供了域模型。此域模型是:

Tx_Extbase_Domain_Model_FrontendUser

它包含TYPO3附带的所有默认fe_用户字段。

如果您已经用自己的字段扩展了fe_users,您还必须扩展Tx_Extbase_Domain_Model_FrontendUser域模型和关联的存储库,以便它知道您添加到fe_users的新字段。

关联的存储库是:

Tx_Extbase_Domain_Repository_FrontendUserRepository

您必须为存储库设置存储PID,以便它可以找到您的fe_用户。

对于前端插件中使用的控制器操作,请使用:

plugin.your_plugin {
    persistence {
        storagePid = somePid, anotherPid
    }
}

如果后端模块中使用的控制器操作使用:

module.your_module {
    persistence {
        storagePid = somePid, anotherPid
    }
}

据我所知,不可能将TYPO3附带的相同对话框用于您自己的扩展,因此您必须在后端模块中创建自己的操作(新建/编辑/显示)和表单。

[编辑]

默认情况下,ExtBase假设所有fe_users都分配了记录类型。当您打开一个前端用户时,您将看到选项卡“扩展”包含一个下拉字段,该字段被标记为“记录类型”。如果未设置此字段,ExtBase将无法使用存储库中的某个find-method查找fe_user。

您应该为所有fe_用户设置记录类型(推荐方式),或者您可以在设置中使用以下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
 类似资料:
  • 我正在尝试使用azure门户创建一个功能应用程序,如所附的屏幕截图所示。但下拉列表中没有列出任何现有的存储帐户(经典)。有人能提供一个指向同一个的指针吗? 请注意,我选择了现有资源组单选按钮,现有存储帐户和托管计划是应用服务计划。

  • 我正在用typo37.6编写一个extbase扩展来组织一个团队。分机的钥匙是小队。每个团队都属于一名培训师,该培训师在fe_用户表中有记录。因此,在我的团队模型中,我与fe_users表有一个关系。我从extension builder开始,然后按照这些网站上的说明调整了我的模型:https://www.typo3.net/forum/thematik/zeige/thema/126982/在后

  • 如何通过导入现有的证书(abc.crt)和abc.key文件来创建密钥存储库?

  • 我有一个列表,我想创建一个名为的扩展。 我不想覆盖,因此不能使用append、extend或insert。我想知道是否有一个快速的方法来完成这项工作(比使用理解列表或Deep.copy更快)

  • 问题内容: 我有一个存储过程,该过程将通过复制旧表的结构来创建新表。但是在创建新表之前,我需要检查该表是否存在,如果存在,则需要先删除该表。这是我的存储过程。 但是,如果该表存在,我总是会收到类似以下的错误。哪里错了? 问题答案: 让我感到难过…在这种情况下,“如果存在”似乎无法与exec配合使用。更新了以下脚本:

  • 主要内容:创建一个远程存储库在本章中,我们将看到如何创建一个远程Git仓库; 我们需要一个远程Git仓库来执行团队协作。这一篇文章很重要,直接影响到后面的章节的学习。所以,希望大家可先耐心地看完本章内容,并按本章一步步的操作。 创建一个远程存储库 我们将演示在 http://git.oschina.net/ 软件项目的托管平台上创建和初始化一个新的存储库。 注:你也可以使用 GitHub (http://github.com