无法访问控制器中的 get vars

impossible to access get vars in the controller

我想在 extbase 扩展的控制器中访问 get vars(或者 post vars)。我使用 TYPO3 7.6.12

这是我控制器中的代码:

public function showAction(\Test\MdIframe\Domain\Model\Iframe $iframe = NULL)
{
    \TYPO3\CMS\Core\Utility\DebugUtility::debug($_REQUEST);
    $args = $this->request->getArguments();
    print_r($args);

调试功能有效,我得到一个填充数组,但 $args 仍然是一个空数组。

为什么?有人有想法吗?

您尝试获取的参数必须在控制器请求上下文中。 您的 post 数据应发送给控制器,例如:

 tx_extensionname_pluginname[object][property]

如果您在模板中使用 f:form,FLUID 会为您执行此操作,并且您的表单和 post 数据语法正确。

使用 $this->request->getArguments 你只能得到由动作定义并由 ?tx_myextension_plugin[argument]=value 传递的参数(f:link.action 将他的参数自动传递给这个前缀):

public function showAction($item = 12, $short = false)
{
  print_r($this->request->getArguments());
}

将输出如下:

Array
(
    [item] => 12
    [short] => false
)

如果您想访问全局 _GET 变量,您可以使用 \TYPO3\CMS\Core\Utility\GeneralUtility::_GET('var'); 来获取 ?var=value