使用其他插件的其他查询参数创建重定向

时间:2019-05-29 07:29:39

标签: typo3 extbase tx-news

我使用新闻插件,在其中添加另一个插件(称为“ Form”)作为CE到“详细信息”视图。

当我在“详细信息”视图中填写表单并提交时,然后我在Controller内的重定向仅传递扩展的参数。

$this->redirect('success');

但是我希望他还通过“新闻”扩展的参数,以便我进入新闻的“详细信息”视图,并且我的Form插件从重定向中获取他的其他操作信息。

但是据我所知,重定向方法仅采用一个插件的参数。

有人有想法吗?

2 个答案:

答案 0 :(得分:0)

redirect函数仅允许您将控制器/操作重定向到的参数。无法添加其他get参数。

唯一的方法是自己创建URL并使用redirectToUri函数。这将使其类似于:

$uriBuilder = $this->getControllerContext()->getUriBuilder();
$uri = $uriBuilder->reset()
  ->setTargetPageUid(1)
  ->setArguments($newsArgs) 
  ->uriFor('success');
$this->redirectToUri($uri);

答案 1 :(得分:0)

除了@Rudy Gnodde答案:

uriBuilder有一个选项“ addQueryString”,它与typoscript中的typolink函数相同。如果启用此选项,则将配置的查询字符串附加到url。这样,您无需为每个扩展名解决每个参数:

$uriBuilder = $this->getControllerContext()->getUriBuilder();
$uri = $uriBuilder->reset()
  ->setAddQueryString(true)
  ->setAddQueryStringMethod('GET')
  ->uriFor('success');
$this->redirectToUri($uri);

对于ViewHelper f:form格式,您还应该添加选项addQueryString="true"