FluidTYPO3流体页 - 未找到自定义页面控制器

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

我正在建立一个包含TYPO3 9.5和Fluid Powered TYPO3扩展的网站,我需要在我的fluidpages模板中访问GET和POST变量。

我试图创建一个自定义的PageController来做到这一点;这是我在…myext/Classes/Controller/PageController.php中添加的课程:

<?php

namespace MyVendor\MyExt\Controller;

use FluidTYPO3\Fluidpages\Controller;

class PageController extends Controller\PageController
{
    protected function initializeViewVariables() {
        parent::initializeViewVariables();
        $GETarray = \TYPO3\CMS\Core\Utility\GeneralUtility::_GET();
        $this->view->assign('GET', $GETarray);
    }
}

不幸的是,这种方法似乎永远不会被执行,好像我的类没有被发现一样。当我使用GET在模板文件中显示<f:debug>{GET}</f:debug>时,结果始终是NULL我在URL中添加的任何参数。我尝试用view->assign分配另一个固定变量,它也是NULL。上面的代码没有语法错误,我正在使用PHPStorm,它找到了父类,并显示我的initializeViewVariables方法覆盖了AbstractFluxController中的那个。

我尝试过的:

  • 我按照文档解释here:使用MyVendorName.Myextensionkey形式的密钥注册我的扩展。我创建了一个ClassAliasMap.php文件,即使我认为TYPO3 9.5不需要它?
  • 在我的扩展中的composer.json文件中,我补充说: "autoload": { "psr-4": { "MyVendor\\MyExt\\": "Classes" } } 在我的整个TYPO3项目的composer.json中,我把: "autoload": { "psr-4": { "MyVendor\\MyExt\\": "public/typo3conf/ext/myext/Classes" } } 我已经确认在使用vendor/composer/autoload_psr4.php命令后,此路径出现在composer dump-autoload中。我还在ext_emconf.php文件中有自动加载信息
  • 清除了TYPO3中的所有缓存
  • 在查看页面时,TYPO3或Apache日志中没有任何错误消息

它仍然无法正常工作。但是,如果我使用userFunc在页面的Typoscript中调用类的方法,则自动加载有效。你看到我失踪了吗?

controller typo3 fluid typo3-9.x
1个回答
0
投票

现在回答我自己的问题(希望我以后能够添加更多细节):为了让某个页面调用上面的Controller,我们需要添加一个动作,即使是一个空的动作,同名模板。例如,如果我们的页面模板是Foo.html,那么如果我们添加一个动作方法,它将起作用:

public function fooAction() {

}

PageController

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