【问题标题】:Use core FrontendUserGroupRepository of TYPO3 in own extension在自己的扩展中使用 TYPO3 的核心 FrontendUserGroupRepository
【发布时间】:2016-03-16 15:11:46
【问题描述】:

我尝试通过以下方式为 TYPO3 的前端用户组实例化核心存储库:

    $objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
    $feGroupRepo = $objectManager->create('\\TYPO3\\CMS\\Extbase\\Domain\\Repository\\FrontendUserGroupRepository');
    var_dump($feGroupRepo->findAll()->toArray());

结果我得到了 sql 错误:

#1247602160: Table 'tablename.tx_extbase_domain_model_frontendusergroup' doesn't exist

为什么这个 repo 使用了错误的表?以及如何以正确的方式配置它以使用系统表'fe_groups'?

【问题讨论】:

    标签: typo3 extbase


    【解决方案1】:

    您使用的是什么 TYPO3 版本?通常情况下,extbase 应该包含一个打字稿,告诉自己不要查看与命名空间和类名匹配的表,而是 fe_groups。应该是这样的:

    config.tx_extbase {
        persistence{
            classes {
                TYPO3\CMS\Extbase\Domain\Model\FrontendUserGroup {
                    mapping {
                        tableName = fe_groups
                        columns {
                            lockToDomain.mapOnProperty = lockToDomain
                        }
                    }
                }
            }
        }
    }
    

    如果由于某种原因不存在,请将其包含在您的 TypoScript 中。

    请不要使用 dprecated 方法$objectManager->create(),但始终使用$objectManager->get()

    【讨论】:

      【解决方案2】:

      尝试按照丹尼尔所说的去做:

      • ->create( 替换为->get(
      • 检查您的 TypoScript 对象浏览器设置部分是否有 config.tx_extbase.persistence.classes.TYPO3\CMS\Extbase\Domain\Model\FrontendUserGroup.mapping.tableName,应该等于 fe_groups。它应该是 pressent,否则添加它 - 但它应该在那里!

      作为额外的一点,删除TYPO3 前面的双反斜杠。这可能是 TYPO3 无法检测到正确的 TypoScript 路径的原因:

      $feGroupRepo = $objectManager->get('TYPO3\\CMS\\Extbase\\Domain\\Repository\\FrontendUserGroupRepository');
      

      之后,清除整个缓存(最终从typo3temp文件夹中删除所有文件,有时需要)。

      【讨论】:

        【解决方案3】:

        试试$objectManager->get('etcetera'),而不是$objectManager->create('etcetera')。如果您想进行更长时间的讨论和更多想法,请查看已接受的答案here

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-09
          • 1970-01-01
          • 2020-08-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多