TYPO3 v10 Action Controller 和子文件夹内的模板

标签 typo3 typo3-10.x

背景

在 TYPO3 v9 之前,可以将 Controller 和相应 Controller Action 的流体模板放入子文件夹中,如下所示:

Classes/Controller/Product/CarController.php

namespace Vendor\MyExtension\Controller\Product;

class Car extends AbstractProduct {
   public function listAction(){
      // ...
   }
}

ext_localconf.php

ExtensionUtility::configurePlugin(
    'MyExtension',
    'CarsPlugin',
    ['Product\Cars' => 'list'],
    []
);      

由于 Controller 名称为“Product\Cars”,相关流体模板路径将解析为:

typo3conf/ext/my_extension/Resources/Private/Templates/Product/Cars/List.html

在 TYPO3 v10 中这不再有效。我想这是因为现在你应该像这样给出一个完全合格的 Controller 名称:

ext_localconf.php

ExtensionUtility::configurePlugin(
    'MyExtension',
    'CarsPlugin',
    [\Vendor\MyExtension\Controller\Product\CarController::class => 'list'],
    []
);

现在,TYPO3 只尝试重新喜欢这个模板: /typo3conf/ext/my_extension/Resources/Private/Templates/Car/List.html

问题

有没有办法让 TYPO3 v10 知道 Controller 在子文件夹中并解析模板,同时检查正确的子文件夹?

当文件结构相同时,这会让生活变得更加轻松。我还认为,在使用从父类继承的域模型和 Controller 表示复杂的层次结构时,这尤其重要,允许系统扩展(想想产品/飞机、产品/船舶等)。

最佳答案

您可以添加一长串文件夹来搜索您的布局/模板/局部。即使在其他扩展的文件夹中。将首先尝试更高的 key

plugin.tx_myextension {
    view {
        templateRootPaths {
             10 = EXT:my_extension/Resources/Private/Templates/
             20 = EXT:my_extension/Resources/Private/Templates/Product/
        }
        partialRootPaths {
            10 = EXT:my_extension/Resources/Private/Partials/
            20 = EXT:my_extension/Resources/Private/Partials/Product/
        }
        layoutRootPaths {
            10 = EXT:my_extension/Resources/Private/Layouts/
            20 = EXT:my_extension/Resources/Private/Layouts/Product/
        }
    }
}

关于TYPO3 v10 Action Controller 和子文件夹内的模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58301045/

相关文章:

typo3 - 从 BE 注销后,我注册的命名空间停止工作

php - TYPO3 测试框架 - FunctionalTestCase 不从扩展加载 TCA 覆盖

php - TYPO3——CentOS 上服务器更改后使用 RSA 的后端登录

TYPO3 (10.4) Felogin : Can´t change Template

typo3 - 如何在typo3 V10中的extbase Controller 中重定向到404页面

typo3 - 从 TYPO3 v9 升级到 v10 后 : Show Pages no longer work (Cannot access protected property)

TYPO3 系统扩展 seo 未按预期工作

typo3 - 如何在 TYPO3 9.x 中配置 tx_blog 扩展的发言 URL

routing - 如何使用路由增强器摆脱 cHash?

php - 以正确的顺序从 mySQL 数据库中排序条目 - 变音符在字符 "Z"之后