我使用新闻插件,在其中添加另一个插件(称为“ Form”)作为CE到“详细信息”视图。
当我在“详细信息”视图中填写表单并提交时,然后我在Controller内的重定向仅传递扩展的参数。
$this->redirect('success');
但是我希望他还通过“新闻”扩展的参数,以便我进入新闻的“详细信息”视图,并且我的Form插件从重定向中获取他的其他操作信息。
但是据我所知,重定向方法仅采用一个插件的参数。
有人有想法吗?
答案 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"
!