我在模块XYZ的动作类中使用以下代码:
$这 - > setTemplate( “abc.php”);
在哪个目录中,它试图找到abc.php?
答案 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)