无法确定扩展和插件的默认控制器

问题描述 投票:1回答:2

亲爱的朋友们,下午好!全部,我放弃了。尽力而为,一切都已经成为可能。 TYPO3 7.6.16

ext_tables.php:

<?php

if (!defined('TYPO3_MODE')) die ('Access denied.');

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
    'MyVendor.' . $_EXTKEY,
    'Pi1',
    'The inventory list'
);

ext_localconf.php:

<?php
if (!defined('TYPO3_MODE')) die ('Access denied.');

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
    'MyVendor.' . $_EXTKEY,
    'Pi1',
    Array ('Comment' => 'list'),
    Array ('Comment' => 'list')
);

并且经常出现相同的错误扩展“Fecomments”和插件“Pi1”的默认控制器无法确定

我读了相同错误的主题,但没有任何帮助我。

我已经爬进了内核,发现$ configuration ['controllerConfiguration']是一个空数组,我不知道为什么数据不会到达那里。同志们,帮帮我吧,我不知道该怎么办,说实话! )

typo3 extbase typo3-7.6.x
2个回答
1
投票

首先,使用两个文件的正确语法。例子:

ext_tables.php:

<?php
defined('TYPO3_MODE') || die('Access denied.');

call_user_func(
    function($extKey)
    {
        \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
            'VENDOR.Extensionkey',
            'Pi1',
            'Extension Display Name'
        );
    },
    $_EXTKEY
);

ext_localconf.php:

<?php
defined('TYPO3_MODE') || die('Access denied.');

call_user_func(
    function($extKey)
    {

        \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
            'VENDOR.' . $extKey,
            'Pi1',
            [
                'First' => 'action1, action2'
            ],
            // non-cacheable actions
            [
                'First' => ''
            ]
        );
    },
    $_EXTKEY
);

确保命名空间和类名称正常:

typo3conf / EXT / extensionkey /班/控制器/ FirstController.php:

/***
 *
 * This file is part of the "extensionkey" Extension for TYPO3 CMS.
 *
 * For the full copyright and license information, please read the
 * LICENSE.txt file that was distributed with this source code.
 *
 *  (c) 2017
 *
 ***/
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;

/**
 * FilecollectorController
 */
class FirstController extends ActionController
{

    /**
     * action1
     *
     * @return void
     */
    public function action1Action()
    {

    }

    /**
     * action1
     *
     * @return void
     */
    public function action2Action()
    {

    }

}

清除所有缓存。有时它会有助于进入ExtensionManager并禁用/启用整个扩展。如果更改了表/ localconf文件中的类名或更改,则会刷新所有缓存。


0
投票
© www.soinside.com 2019 - 2024. All rights reserved.