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

时间:2016-04-08 16:43:53

标签: typo3 flux typo3-6.2.x

如何将参数传递给启用磁通的控制器,以便控制器操作识别它?

我使用构建器创建了一个扩展,并将以下方法添加到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
fluidcontent_core 1.3.0
建造者1.0.0
没有安装任何其他东西(新系统仅用于测试此行为)。

1 个答案:

答案 0 :(得分:2)

使用流体链接,您可以传递

之类的para
<f:link.action action="example" controller="controllerName"  arguments="{var:'abc'}">Go</f:link.action>

它会创建如下链接:

http://host/index.php?id=1&tx_[extension_key]_[fe_plugin_key][var]=abc

现在,如何从extBase中的url获取para

$arguments = $this->request->getArguments(); // OR
$var = $this->request->getArgument('var');

有用的链接: