技术原因是:没有找到模板。无法解析 class "LoginController" 中操作 "search" 的视图
The technical reason is: No template was found. View could not be resolved for action "search" in class "LoginController"
我是 typo3 的新手,我一直在尝试为其开发扩展。当我将插件加载到页面时出现错误:
抱歉,没有找到请求的视图。
技术原因是:没有找到模板。无法解析 class“LoginController”中“搜索”操作的视图。
在登录控制器中,我有一个函数 searchAction,而且我在里面有一个模板
- \Resources\Private\Templates\StoreInventory\Search.html
可能是什么错误?我遵循了 typo3 的扩展开发文档。我什至从 GIT 下载了代码并尝试使用它,但没有成功。
首先检查 Configuration/TypoScript/setup.typoscript
中的模板根路径
并进行相应设置。
尝试将文件放在 \Resources\Private\Templates\Search。html,因为 \Resources\Private\Templates 是默认路径,除非您已更改它。
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
的确,您可以使用打字错误来更改此行为或设置覆盖或扩展模板等。但我认为你是在默认情况下工作,这应该是你现在的工作路径
我是 typo3 的新手,我一直在尝试为其开发扩展。当我将插件加载到页面时出现错误:
抱歉,没有找到请求的视图。
技术原因是:没有找到模板。无法解析 class“LoginController”中“搜索”操作的视图。
在登录控制器中,我有一个函数 searchAction,而且我在里面有一个模板
- \Resources\Private\Templates\StoreInventory\Search.html
可能是什么错误?我遵循了 typo3 的扩展开发文档。我什至从 GIT 下载了代码并尝试使用它,但没有成功。
首先检查 Configuration/TypoScript/setup.typoscript
中的模板根路径并进行相应设置。
尝试将文件放在 \Resources\Private\Templates\Search。html,因为 \Resources\Private\Templates 是默认路径,除非您已更改它。
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
的确,您可以使用打字错误来更改此行为或设置覆盖或扩展模板等。但我认为你是在默认情况下工作,这应该是你现在的工作路径