控制器操作 - 重定向到另一个模板

Controller action - redirect to another template

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

喜欢:

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

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

$this->redirect('list');

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

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

非常感谢!

在控制器中使用重定向,您总是重定向到另一个函数,而不是模板。

例如

$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".