【发布时间】:2016-07-30 00:51:53
【问题描述】:
如何将参数传递给启用磁通的控制器,以便控制器动作识别它?
我使用 builder 创建了一个扩展,并将以下方法添加到 ContentController。
/**
* @param string $var
*/
public function exampleAction($var = null) {
var_dump($var);
die;
}
但无论我如何将参数添加到 URL,结果都只能得到“null”。
扩展目录是“test”,$_EXTKEY 也是。构建器将“Mac.Test”放入ext_tables.php 以调用registerProviderExtensionKey()。所以在 URL 中我尝试了这些参数:
http://host/index.php?id=1&tx_test_content[var]=abc
http://host/index.php?id=1&tx_test[var]=abc
http://host/index.php?id=1&tx_mactest_content[var]=abc
http://host/index.php?id=1&tx_mactest[var]=abc
http://host/index.php?id=1&var=abc
还有一些其他的。但无济于事。
我尝试使用 f:link.action ViewHelper,结果是http://localhost/test2/index.php?id=1&no_cache=1&tx_test_content[member]=foo&tx_test_content[action]=example&tx_test_content[controller]=Content
另外 $this->request->getArguments() 只返回一个空数组,所以肯定有严重错误。
使用过的版本:
PHP 5.6.11
TYPO3 6.2.21
vhs 2.4.0
助焊剂 7.2.3
流体页面 3.3.1
流体内容 4.3.3
流体内容核心 1.3.0
生成器 1.0.0
没有安装其他任何东西(新系统仅用于测试此行为)。
【问题讨论】:
-
这是一个可缓存的控制器动作吗?如果是,那么它可能不关心基于先前执行的任何参数。
-
您能否在
ext_localconf.php和\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin()中将电话发送给\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin()在ext_tables.php中?插件名称对参数名称很重要。 -
不,很遗憾我不能,因为我使用的是 FluidTYPO3(也称为通量)。因此在 ext_tables.php / ext_localconf.php 中没有插件配置。还是在这种情况下我应该拥有它?我没有在网上看到任何关于它的提及。
-
@Jost:我试了一下并添加了扩展名为“Test”、“MacTest”甚至“Mac.Test”的插件配置。完全没有区别。是的,我清除了缓存;)
-
不是答案,只是提示:使用
TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($var);进行调试。给你一些漂亮的风格输出
标签: typo3 flux typo3-6.2.x