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

时间:2011-05-03 21:20:53

标签: php symfony1

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

$这 - > setTemplate( “abc.php”);

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

3 个答案:

答案 0 :(得分:6)

相应的路径是templates目录,该目录与编辑actions文件的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另行指定)。

答案 1 :(得分:5)

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

要清楚。致电

$this->setTemplate("abc");
如果coressponding action方法返回module/templates/abcSuccess.php或什么都没有,

将强制Symfony呈现模板sfView::SUCCESS

如果您的操作将返回module/templates/abcError.php,则会显示

sfView::ERROR

如果您的操作因return 'SomeString';而终止,则会呈现module/templates/abcSomeString.php

答案 2 :(得分:0)

根据API Documentation

任何时候我写这个:

$ this-> setTemplate('action_name','module_name');