【问题标题】:TYPO3 10.4 new fields not found in frontendTYPO3 10.4 前端未找到新字段
【发布时间】: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 = 
}

还有什么要寻找的想法吗?

【问题讨论】:

标签: typo3-10.x


【解决方案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 以获取此值。或者在创建该类型的记录后查找数据库。

    【讨论】:

      猜你喜欢
      • 2021-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-19
      • 1970-01-01
      • 2014-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多