Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用FluidTypo3将参数传递给控制器操作?_Typo3_Flux_Typo3 6.2.x - Fatal编程技术网

如何使用FluidTypo3将参数传递给控制器操作?

如何使用FluidTypo3将参数传递给控制器操作?,typo3,flux,typo3-6.2.x,Typo3,Flux,Typo3 6.2.x,我必须如何将参数传递给启用通量的控制器,以便控制器操作能够识别它 我使用builder创建了一个扩展,并将以下方法添加到ContentController中 /** * @param string $var */ public function exampleAction($var = null) { var_dump($var); die; } 但无论我如何将参数添加到URL,结果都只能得到“null” 扩展目录是“test”,EXTKEY也是。生成器将“Mac.Test

我必须如何将参数传递给启用通量的控制器,以便控制器操作能够识别它

我使用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[成员]=foo和tx测试内容[行动]=示例和tx测试内容[控制器]=内容

另外,$this->request->getArguments()只返回一个空数组,所以肯定有严重错误

使用版本:
PHP 5.6.11
类型3 6.2.21
vhs 2.4.0
通量7.2.3
fluidpages 3.3.1
fluidcontent 4.3.3
fluidcontent_core 1.3.0
builder 1.0.0

未安装任何其他设备(仅用于测试此行为的全新系统)。

使用fluid link,您可以通过

<f:link.action action="example" controller="controllerName"  arguments="{var:'abc'}">Go</f:link.action>
现在,如何从extBase中的url获取para

$arguments = $this->request->getArguments(); // OR
$var = $this->request->getArgument('var');
有用链接:


这是可缓存的控制器操作吗?如果是,那么它可能不关心基于以前执行的任何参数。您可以在
ext\u localconf.php
ext\u tables.php
中发布对
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin()
的调用吗?pluginname对参数名很重要。不,不幸的是我不能,因为我使用的是FluidTYPO3(也称为flux)。因此,ext_tables.php/ext_localconf.php中没有插件配置。还是在这种情况下我应该拥有它?我在网上的任何地方都没有看到任何关于它的提及。@Jost:我尝试了一下,添加了扩展名为“Test”、“MacTest”甚至“Mac.Test”的插件配置。没什么区别。是的,我清除了缓存;)不是答案,只是提示:使用
TYPO3\CMS\Extbase\Utility\DebuggerUtility::var\u dump($var)以进行调试。为这次尝试提供了一些漂亮的样式输出,但不幸的是,它没有改变任何东西。事实上,我一开始试图通过
f:link.action
ViewHelper生成链接,但由于没有任何影响,我尝试使用其他URL参数。不过,我应该注意到这一点
$this->request->getArguments()
返回一个空数组。即使它返回值,我也会失去很多魔力(比如将参数解析为完全加载的模型)。不幸的是,你的建议没有帮助:(
$arguments = $this->request->getArguments(); // OR
$var = $this->request->getArgument('var');