繁体   English   中英

扩展自定义 TYPO3 9.5 扩展时出现问题 - 我无法在 controller 中添加操作

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM