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

问题描述:

我该如何将参数传递给启用flux的控制器才能被控制器操作识别?如何使用FluidTypo3将参数传递给控制器​​操作?

我使用构建器创建了一个扩展,并将以下方法添加到ContentController。

/** 
* @param string $var 
*/ 
public function exampleAction($var = null) { 
    var_dump($var); 
    die; 
} 

但无论如何将该参数添加到URL,我只会得到“null”作为结果。

扩展名目录是“测试”,所以是$_EXTKEY。对于registerProviderExtensionKey()的调用,构建器将“Mac.Test”放入ext_tables.php。所以在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视图助手,导致
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

而且$这个 - >请求 - > getArguments()只返回一个空数组,所以必须有一些严重的错误。

二手版本:
PHP 5.6.11
TYPO3 6.2.21
VHS 2.4.0
通量7.2.3
fluidpages 3.3.1
fluidcontent 4.3.3
fluidcontent_core 1.3.0
构建器1.0.0
没有其他安装(新系统仅用于测试此行为)。

+0

这是一个超高速缓存控制器动作?如果是,那么它可能不会在意基于先前执行的任何参数。 – sven

+0

您可以在'ext_localconf.php'和'\ TYPO3 \ CMS \ Extbase \ Utility \ ExtensionUtility :: registerPlugin()'中将调用发布到'\ TYPO3 \ CMS \ Extbase \ Utility \ ExtensionUtility :: configurePlugin() ext_tables.php'?插件名称对参数名称很重要。 – Jost

+0

不,不幸的是,我不能,因为我使用FluidTYPO3(也称为助焊剂)。因此ext_tables.php/ext_localconf.php中没有插件配置。或者我应该在这种情况下呢?我在任何地方都没有看到任何关于它的提及。 –

使用流体链接,你可以通过对像

<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 

,如何从URL中对extBase

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

有用链接:

+0

感谢您的尝试,但不幸的是它不会改变任何东西。实际上,我起初试图通过'f:link.action' ViewHelper生成链接,因为它根本没有任何影响,所以我尝试了其他URL参数。不过,我应该注意到这一点。 '$ this-> request-> getArguments()'返回一个空数组。即使它返回值,我也会失去很多魔法(比如将参数解析为一个完全加载的模型)。所以不幸的是你的提示并不能帮助:( –