如何在Symfony中为不同的模块设置不同的模板布局

时间:2009-03-04 11:14:00

标签: symfony1

如何在Symfony中为不同的模块设置不同的模板布局?

我有一个银行应用程序,包括登录屏幕和成员部分。因此,当用户访问我的网站时,他将看到一个登录屏幕。登录后,他将被重定向到会员部分,他可以满足银行的需求。

那么,如何为登录界面和成员部分内的页面设置不同的布局? Symfony似乎使用frontend/templates/layout.php作为所有页面的模板。是否可以定义不同的布局?

2 个答案:

答案 0 :(得分:42)

是的,您可以为每个视图定义单独的布局(或完全禁用布局)。为此,您必须在模块的/ config目录中创建(或编辑,如果已经拥有)view.yml文件。您可以分别定义用于模块的所有视图或每个视图的布局。例如:

#in /apps/my_app/modules/my_module/config/view.yml

#this will apply custom_layout to all views of the module
all:
  layout: custom_layout

#this will apply login_layout to the loginSuccess view
loginSuccess:
  layout: login_layout

#disable layout for this view
homeSuccess:
  has_layout: false

在所有情况下,布局都是应用程序的/ templates目录中的文件(附加.php)。如果未在模块的视图配置文件中定义任何布局指令,则将使用默认布局。

答案 1 :(得分:-1)

或者如果你在内部行动,你可以简单地使用:

$this->setLayout('name_file_layout_without_extension');

之后,您可以处理模块中使用的模板。