我的页面无法识别我的 Extbase 插件控制器

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

我正在尝试使用 Extbase 将插件添加到我的扩展中。我按照 TYPO3 文档上的教程进行操作,还在 YouTube 上观看了视频,但我无法让它工作,而且我总是得到一个空白页面(我在 TypoScript 和 PHP 中激活了调试)。

我创建了以下内容

在汽车/ext_localconf.php

    ExtensionUtility::configurePlugin(
    'Cars',
    'Show',
    [
        CarController::class => 'list, show'
    ]
);

在汽车/配置/TCA/Overrides/tt_content.php

ExtensionUtility::configurePlugin(
    'Cars',
    'Show',
    [
        CarController::class => 'list, show'
    ]
);

在汽车/配置/TypoScript

plugin.tx_cars {
    view {
        templateRootPaths {
            0 = EXT:cars/Resources/Private/Templates/
        }

        partialRootPaths {
            0 = EXT:cars/Resources/Private/Partials/
        }

        layoutRootPaths {
            0 = EXT:cars/Resources/Private/Layouts/
        }
    }

    settings {
        singleViewPageUid = 4
    }
}

还有控制器、模型和存储库。您可以在这个 GitHub 存储库中看到该扩展,它的结构非常简单。 github 存储库

我相信问题来自 TypoScript,因为我无法理解如何在 TypoScript 中添加插件。我对吗?我还漏掉了什么吗?

typo3 typoscript extbase
1个回答
0
投票

ext_localconf.php
Configuration/TCA/Overrides/tt_content.php
中缺少命名空间。 而且不需要在两个文件中都配置,通常只在
ext_localconf.php
中完成。

ext_localconf.php

ExtensionUtility::configurePlugin(
    'Cars',
    'Show',
    [
        \VENDOR\EXTENSIONNAME\CarController::class => 'list, show'
    ]
);

VENDOR 和 EXTENSIONNAME 必须替换为您的个人值。

另一个要求是在根模板记录中包含静态 TypoScript。这也可以间接位于包含扩展文件的站点包中。
在后一种情况下,您必须注意将汽车扩展的文件

constants.typoscript
包含在站点包的
constants.typoscript
中,并将汽车扩展的文件
setup.typoscript
包含在站点包的
setup.typoscript
中。

我不确定这是否能解决您的问题,但这将是第一步。

另一种方法是使用 extension_builder 创建扩展,但是你应该使用 TYPO3 v11。实际上我不能保证它在那里工作完美,但在 v12 中它仍然是不可取的,特别是对于初学者。

© www.soinside.com 2019 - 2024. All rights reserved.