在Symfony(PHP)中,setTemplate方法的路径是什么?

svi*_*irk 3 php symfony1

我在模块XYZ的action类中使用以下代码:

$这 - > setTemplate( "abc.php");

在哪个目录中,它试图找到abc.php?

Kyl*_*ild 6

相应的路径是与编辑文件templatesactions目录并行的目录actions.class.php.

在文件中/path/to/my/module/actions/actions.class.php,如果您这样做:

$this->setTemplate("index");

相应的模板文件位于:

/path/to/my/module/templates/indexSuccess.php

这当然是假设成功完成了行动; 失败时,处理方式不同,取决于您的实施.

另外值得注意的是:

如果未使用手动设置模板$this->setTemplate($foo),则模板名称将按约定确定.对于动作功能executeHomepage(sfWebRequest $request),模板homepageSuccess.php将按惯例显示(同样,除非您另行指定setTemplate).


Ali*_*lik 5

http://www.symfony-project.org/gentle-introduction/1_4/en/06-Inside-the-Controller-Layer#chapter_06_sub_action_termination.此文档页面包含可能的模板名称的完整列表.

要清楚.呼叫

$this->setTemplate("abc");
Run Code Online (Sandbox Code Playgroud)

module/templates/abcSuccess.php如果coressponding action方法返回sfView::SUCCESS或没有返回,将强制Symfony呈现模板.

module/templates/abcError.php如果您的行动将返回,将会呈现sfView::ERROR.

此外,如果您的操作终止,return 'SomeString';那么module/templates/abcSomeString.php将被渲染.