问题描述
我是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
如果仔细观察,您会发现模板路径由多个组件组成。
- 扩展程序 (EXT:store_inventory)
- 默认模板目录路径(Resources/Private/Templates)
- 不带控制器后缀的控制器名称 (StoreInventory)
- 不带动作后缀的动作名称(列表)
- .html 后缀
如果您获取该信息并将其应用于您的案例,则:
- 扩展名 (EXT:your_extension_name)
- 默认模板目录路径(Resources/Private/Templates)
- 没有控制器后缀的控制器名称(登录)
- 不带操作后缀的操作名称(搜索)
- .html 后缀
所以最终的结果会是这样的
EXT:your_extension_name/Resources/Private/Templates/Login/Search.html
确实,您可以使用排版来更改此行为或设置覆盖或扩展模板。但我认为你是从默认工作的,这应该是你现在的工作路径
,首先在 Configuration/TypoScript/setup.typoscript 中检查你的 templateRootPaths
并进行相应设置。
尝试将文件放在 \Resources\Private\Templates\Search.html 中,因为 \Resources\Private\Templates 是默认路径,除非您对其进行了更改。