forms - 控制器操作 - 重定向到另一个模板
问题描述
如果满足某些条件,我正在寻找一种重定向到另一个模板的方法。
喜欢:
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”。
推荐阅读
- sql - 与 ElementCollection 的多个成员匹配的 Hibernate SQL 查询
- powershell - 使用 PowerShell 替换字符串,直到其长度小于限制
- mongodb - 错误:尝试在主机“127.0.0.1:27017”上运行命令“isMaster”时出现网络错误
- dart - 无法将 yyyyMMddHHmmss 格式的字符串日期转换为 DateTime dart
- linux - 如何在linux上实现写事务?全部写或什么都不做
- vba - 如何在VBA中获取CSV文件中的数据行数
- python - Faceswap:无法加载原生 TensorFlow 运行时
- serenity-bdd - 在一个 Serenity 任务类中打开不同的 URL?
- html - 使用左下角的 css 和 html 创建 hr
- c# - GetSchemaTable() 不返回 IsKey 属性