技术原因是:没有找到模板无法解析“LoginController”类中的“搜索”操作的视图

问题描述

我是typo3 的新手,我一直在尝试为它开发一个扩展。当我将插件加载到页面时,出现错误

抱歉,未找到请求的视图。

技术原因是:没有找到模板。无法解析“LoginController”类中的“搜索”操作的视图。

登录控制器中,我有一个函数 searchAction,里面有一个模板

  • \Resources\Private\Templates\StoreInventory\Search.html

可能是什么错误?我遵循了typo3的扩展开发文档。我什至从 GIT 下载了代码并尝试使用它,但没有成功。

解决方法

TL;DR:它应该放在 Resources/Private/Templates/Login/Search.html

说明: 根据您的问题,我可以告诉您已经使用了 https://docs.typo3.org/m/typo3/book-extbasefluid/master/en-us/4-FirstExtension/6-adding-the-template.html 上的文档 这并没有错,但您错过了至关重要的一步。当您查看他们使用的路径时,您会发现很多都是自动完成的。让我们分解一下。

他们在以下路径中有一个带有动作的控制器和与之相关的模板

  • 控制器: \MyVendor\StoreInventory\Controller\StoreInventoryController
  • 动作:listAction
  • 模板:EXT:store_inventory/Resources/Private/Templates/StoreInventory/List.html

如果仔细观察,您会发现模板路径由多个组件组成。

  1. 扩展程序 (EXT:store_inventory)
  2. 默认模板目录路径(Resources/Private/Templates)
  3. 不带控制器后缀的控制器名称 (StoreInventory)
  4. 不带动作后缀的动作名称(列表)
  5. .html 后缀

如果您获取该信息并将其应用于您的案例,则:

  1. 扩展名 (EXT:your_extension_name)
  2. 默认模板目录路径(Resources/Private/Templates)
  3. 没有控制器后缀的控制器名称(登录)
  4. 不带操作后缀的操作名称(搜索)
  5. .html 后缀

所以最终的结果会是这样的

EXT:your_extension_name/Resources/Private/Templates/Login/Search.html

确实,您可以使用排版来更改此行为或设置覆盖或扩展模板。但我认为你是从默认工作的,这应该是你现在的工作路径

,

首先在 Configuration/TypoScript/setup.typoscript 中检查你的 templateRootPaths

并进行相应设置。

尝试将文件放在 \Resources\Private\Templates\Search.html 中,因为 \Resources\Private\Templates 是默认路径,除非您对其进行了更改。