Typo3 类型3如何设置特定视图

Typo3 类型3如何设置特定视图,typo3,extbase,Typo3,Extbase,如何在我的扩展中设置特定视图 $this->view->assign('example',$example)-这意味着视图路径必须与控制器和操作名称匹配。我需要用另一个路径和名称设置特定视图!有可能吗?您可以使用$this->view->setTemplatePathAndFilename('path/to/your/template.html');设置自定义视图。您可以使用$this->view->setTemplatePathAndFilename('path/to/your/templat

如何在我的扩展中设置特定视图


$this->view->assign('example',$example)-这意味着视图路径必须与控制器和操作名称匹配。我需要用另一个路径和名称设置特定视图!有可能吗?

您可以使用$this->view->setTemplatePathAndFilename('path/to/your/template.html');设置自定义视图。

您可以使用$this->view->setTemplatePathAndFilename('path/to/your/template.html');设置自定义视图。

我只是想补充一点,即尽可能不要覆盖预期的模板路径。除此之外,部分和布局的解析仍然基于定义的根路径,而不是显式定义的模板名称。但在紧要关头,沃特的建议可以使用。其他注意事项:如果预期的模板文件不存在,则即使尝试以这种方式重写该文件,也会出现错误。原因是在控制器处理请求之前就完成了对该文件的解析;如果未找到,则不会进行任何处理,正如您所说的,这不是解决此问题的最佳方法。如果我想在两个不同的模板/视图中使用相同的控制器操作,该怎么办。这是最好的方法,还是有更干净的解决方案?不确定我是否完全理解这个问题,但通常如果您希望“在两个视图中使用相同的控制器操作”,这意味着您希望更改布局而不是操作。有几种方法可以实现这一点——举几个例子:动态布局名称、基于动作的动态布局覆盖、不同的view init in action初始化方法、使用f:render+contentAs动态包装输出,以及Wouter在上面给出的建议(除了替换布局路径和文件名)。您想要哪一个完全取决于您的具体用例,需要仔细考虑。我只是想补充一点,您不应该覆盖预期的模板路径。除此之外,部分和布局的解析仍然基于定义的根路径,而不是显式定义的模板名称。但在紧要关头,沃特的建议可以使用。其他注意事项:如果预期的模板文件不存在,则即使尝试以这种方式重写该文件,也会出现错误。原因是在控制器处理请求之前就完成了对该文件的解析;如果未找到,则不会进行任何处理,正如您所说的,这不是解决此问题的最佳方法。如果我想在两个不同的模板/视图中使用相同的控制器操作,该怎么办。这是最好的方法,还是有更干净的解决方案?不确定我是否完全理解这个问题,但通常如果您希望“在两个视图中使用相同的控制器操作”,这意味着您希望更改布局而不是操作。有几种方法可以实现这一点——举几个例子:动态布局名称、基于动作的动态布局覆盖、不同的view init in action初始化方法、使用f:render+contentAs动态包装输出,以及Wouter在上面给出的建议(除了替换布局路径和文件名)。您想要哪一个完全取决于您的具体用例,需要仔细考虑。