2011-05-17 68 views
1

我有一个单应用程序frontend的symfony 1.4项目。此应用程序具有单个模块book,单个操作index在同一个symfony应用程序中针对不同视图的不同布局

我有两个索引操作的模板:indexSuccess.mobile.phpindexSuccess.html.php。该操作将设置格式以便调用这些模板中的一个或另一个。

我想为这两个模板中的每一个使用不同的布局:layout.mobile.phplayout.html.php。文件apps/frontend/modules/book/config/view.yml文件用于指定要使用的布局以及布局中包含哪些CSS和JavaScript文件。

由于只能有每个模块一个view.yml文件,我怎么配置view.yml使indexSuccess.mobile.php使用layout.mobile.php并加载相应的CSS和JS文件,而indexSuccess.html.php使用layout.html.php和负载相应的CSS和JS文件?

我想使用布局,因为我最终会将更多的动作/模板添加到此模块中。

回答

4

您可以使用您的操作的setLayout()方法来实现此目的。 更新为css和js文件,您也可以使用该动作(请致电sfWebResponse::addStylesheet()sfWebResponse::addJavascript())。 如果你完全想从view.yml做到这一切,最好的办法是改变模板名称(在你的动作中返回一个不同的后缀)

+0

这解释了如何为特定操作定义布局,但它并没有回答我如何使用单个文件'view.yml'来配置多个布局的问题。请记住,'view.yml'包含布局的配置信息,比如包含什么样式表,什么样的JavaScript文件等等。 – rlandster 2011-05-17 20:20:58

+1

@rlandster:我认为不可能根据'sf_format'配置布局从'view.yml'的基础,因此我的解决方案 – greg0ire 2011-05-17 21:06:32

0

我没有测试,但似乎它的伎俩:

<?php 
    // in indexSuccess.mobile.php 
    decorate_with('layout.mobile'); 
相关问题