[英]Problem with extending custom TYPO3 9.5 extension - I can't add action in controller
在 FE 我有一个错误
(1/1) #1186669086 TYPO3\CMS\Extbase\Mvc\Exception\NoSuchActionException
An action "showcandidateAction" does not exist in controller "Myvendor\VvApplicationform\Controller\ApplicationformController".
在 ext_localconf.php 我有这个
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'Myvendor.VvApplicationform',
'Candidateform',
array(
'Applicationform' => 'showcandidate',
),
array(
'Applicationform' => 'showcandidate',
)
);
当我将 ext_localconf.php 中的操作更改为另一个时 - 我在 FE 中看到了正确的形式。 在 controller - applicationform/Classes/Controller/ApplicationformController.php 中:
/*
* @param \Myvendor\VvApplicationform\Domain\Model\CandidateApplication $application
* @return void
*/
public function showcandidateAction(\Myvendor\VvApplicationform\Domain\Model\CandidateApplication $application = null) {
...
}
更改后我清除所有缓存和转储自动加载。 但是在FE中仍然有错误。 当然我这里有一个模板'applicationform/Resources/Private/Templates/Applicationform/Showcandidate.html'
UP1 我忘了通知我正在使用 TYPO3 9.5
UP2 这是 ext_tables.php 中的 registerPlugin: \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin('Myvendor.VvApplicationform', 'Candidateform', 'Candidate Form');
UP3 - 这个名为 vv_applicationform 的分机目录。 我在最初的帖子中更新了错误的名称。 这是ApplicationformController.php
namespace Myvendor\VvApplicationform\Controller;
/**
* Class ApplicationformController
*
* @package Myvendor\VvApplicationform\Controller
*/
class ApplicationformController extends ActionController
{
您必须以不同方式配置插件:
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'applicationform',
'Candidateform',
array(
Myvendor\Applicationform\Controller\ApplicationformController::class => 'showcandidate',
),
array(
Myvendor\Applicationform\Controller\ApplicationformController::class => 'showcandidate',
)
);
您可以在此处找到有关它的描述:
https://docs.typo3.org/m/typo3/reference-coreapi/11.5/en-us/ExtensionArchitecture/Extbase/Reference/FrontendPlugins.html#id2
我认为 CamelCase 写作中有一个错字。
扩展文件夹:vv_applicationform 命名空间:Myvendor\VvApplicationform...
然后在 ext_localconf.php 是错误。 将“Myvendor.Vvapplicationform”替换为“Myvendor.VvApplicationform”
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'Myvendor.VvApplicationform',
'Candidateform',
[
'Applicationform' => 'showcandidate',
],
[
'Applicationform' => 'showcandidate',
]
);
从 ExtensionUtility::configurePlugin(...)
* @param string $extensionName The extension name (in UpperCamelCase) or the extension key (in lower_underscore)
最后我解决了这个问题。 我是一个愚蠢的错误 - Controller 目录中的备份副本目录。 这是我的树:
-Controller
--Mybak_folder
-ApplicationformController.php
--ApplicationformController.php
当我从 TYPO3 维护中删除目录“Mybak_folder”和转储自动加载时,我解决了这个问题......感谢所有试图帮助的人
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.