【问题标题】:How to set different template layout for different modules in Symfony如何在 Symfony 中为不同的模块设置不同的模板布局
【发布时间】:2010-10-11 05:48:06
【问题描述】:

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

我有一个由登录屏幕和会员部分组成的银行应用程序。因此,当用户访问我的网站时,他会看到一个登录屏幕。登录后,他将被重定向到会员部分,他可以做任何银行业务。

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

【问题讨论】:

    标签: symfony1


    【解决方案1】:

    是的,您可以为每个视图定义单独的布局(或完全禁用布局)。为此,您必须在模块的 /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)。如果你没有在模块的视图配置文件中定义任何布局指令,将使用默认布局。

    【讨论】:

      【解决方案2】:

      或者如果你在actions里面,你可以简单地使用:

      $this->setLayout('name_file_layout_without_extension');
      

      在您可以处理您在模块内使用的模板之后。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多