【发布时间】:2019-03-05 14:33:07
【问题描述】:
我正在使用 TYPO3 9.5 和 Fluid Powered TYPO3 扩展构建一个网站,我需要在我的流体页面模板中访问 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);
}
}
不幸的是,这个方法似乎永远不会被执行,就好像我的班级没有找到一样。当我在带有<f:debug>{GET}</f:debug> 的模板文件中显示GET 时,结果始终是NULL 我在URL 中添加的任何参数。我尝试用view->assign 分配另一个固定变量,它也是NULL。上面的代码没有语法错误,我使用的是 PHPStorm,它找到了父类并显示我的 initializeViewVariables 方法覆盖了 AbstractFluxController 中的那个。
我尝试过的:
- 我按照文档中的说明 here :使用
MyVendorName.Myextensionkey形式的密钥注册了我的扩展程序。我创建了一个ClassAliasMap.php文件,尽管我认为 TYPO3 9.5 不需要它? - 在我的扩展程序的
composer.json文件中,我添加了:
在我的整个 TYPO3 项目的"autoload": { "psr-4": { "MyVendor\\MyExt\\": "Classes" } }composer.json中,我输入:
并且在我使用"autoload": { "psr-4": { "MyVendor\\MyExt\\": "public/typo3conf/ext/myext/Classes" } }composer dump-autoload命令后,我已验证此路径出现在vendor/composer/autoload_psr4.php中。我在ext_emconf.php文件中也有自动加载信息 - 清空 TYPO3 中的所有缓存
- 查看页面时,我在 TYPO3 或 Apache 日志中都没有任何错误消息
它仍然不起作用。但是,如果我在带有userFunc 的页面的 Typoscript 中调用类的方法,则自动加载会起作用。你看到我错过了什么吗?
【问题讨论】:
标签: controller typo3 fluid typo3-9.x