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

子文件夹中的TYPO3 v10操作控制器和模板

戚浩淼
2023-03-14

在TYPO3 v9之前,可以将相应控制器操作的控制器和流体模板放入如下子文件夹:

类/控制器/产品/CarController.php

namespace Vendor\MyExtension\Controller\Product;

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

ext_localconf.php

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

由于控制器名称“Product\Cars”,相对流体模板路径将解析为:

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

在TYPO3 v10中,这不再有效。我想这是因为现在你应该给出一个完全限定的控制器名称,如下所示:

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是否有办法确认控制器在子文件夹中并解析模板,同时检查正确的子文件夹?

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

共有1个答案

司空丰
2023-03-14

您可以添加一长串文件夹,在其中搜索布局/模板/部分。甚至在其他扩展的文件夹中。更高的键会先尝试

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/
        }
    }
}
 类似资料:
  • 问题内容: 因为我想分离系统的前端和后端。我已经在控制器内部创建了2个文件夹作为前端和后端 下面是我的控制器文件夹的结构 我可以通过使用以下功能 但我想从网址中删除前端和后端段。 我检查了codeigniter中的路由功能,但据我所知,我需要分别指定每个路由。由于我大约有12个控制器,每个控制器都具有大约10 -15个功能,因此我可能必须指定该路由的每个功能。 有没有其他有效的方法可以实现使用路由

  • 空操作 空操作是指系统在找不到指定的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化。 下面的例子用空操作功能实现了一个城市切换的功能。 我们只需要给City控制器类定义一个_empty (空操作)方法: <?php namespace app\index\controller; class City { public fu

  • 本文向大家介绍8254控制字和操作模式,包括了8254控制字和操作模式的使用技巧和注意事项,需要的朋友参考一下 在这里,我们将看到8254可编程间隔定时器芯片的控制字和操作模式。 在讨论其工作模式和控制字属性之前,我们应该了解该芯片的一些重要事实。 芯片加电时,状态不确定。当时未定义模式,计数值和输出。 每个计数器在使用前都必须编程。我们不需要对一些未使用的计数器进行编程。 计数器是通过编写控制字

  • 允许开发者上传图片资源, 上传成功后可以在该面板得到资源的网络地址。 文件分类 由于目前暂不支持移动已上传文件的文件分类,所以在上传文件之前,建议开发者先新建文件分类。点击「添加分类」按钮,输入文件分类名字即可完成新建文件分类。 如需编辑或删除文件分类,请将光标移动到对应文件分类上,点击对应图标即可完成对应操作。 danger 删除文件分类并不会删除该文件分类下的文件。 上传文件 点击所要上传文件

  • 对于我们的web应用程序,我需要保存获取和显示的项的顺序,这取决于视图--或者准确地说--生成视图的控制器和操作(当然还有用户id,但这不是这里的重点)。 我认为,与其在每个控制器操作中自己给出一个标识符(以便使用它对DB输出进行视图依赖的排序),不如从控制器和操作方法中自动创建这个标识符更安全、更容易。 如何从控制器的操作方法中获取控制器和操作的名称?还是我需要反思?

  • null 但是,如何和在哪里配置它呢?