首页 > 解决方案 > 控制器操作 - 重定向到另一个模板

问题描述

如果满足某些条件,我正在寻找一种重定向到另一个模板的方法。

喜欢:

public funtion redirectAction() {
 if(certain conditions = TRUE){
  REDIRECT TO ANOTHER TEMPLATE WITH DIFFERENT CONTENT
 }
}

我在现有操作中看到了一些表达式:

$this->redirect('list');

在这种情况下,'list'是默认List.html模板,对吗?所以我想如果我用'list'不同的模板名称替换它,那将解决问题。但我得到一个 opps 错误。

或者有没有其他调用不同模板的解决方案?

非常感谢!

标签: formsredirectfluidextbasetypo3-9.x

解决方案


通过控制器中的重定向,您总是重定向到另一个函数,而不是模板。

例如与

$this->redirect('list2');

然后,您将重定向到函数 list2Action(),这将需要一个模板 List2.html

然而,通常在流体中使用开关更容易。例如:

<f:if condition="{abc} == 1">
<f:then>
   <f:render partial="TempalteAbcTrue" arguments="{_all}" />
</f:then>
<f:else>
    <f:render partial="TempalteAbcFalse" arguments="{_all}" />
</f:else>

如果你使用 extbase 的普通文件夹结构,你有一个“Layouts”、“Templates”和“Partials”文件夹。使用上面的示例,您可以在“Partials”文件夹中创建 2 个文件:“TempalteAbcTrue.html”和“TempalteAbcFalse.html”。


推荐阅读