2015-09-07 33 views
0

我有一个symfony2应用程序与多个样式。所有3个都有自己的html + css用于渲染。 类似“前端”,“用户仪表板”和“管理后端”。symfony2树枝形式主题为不同的子网站

现在在所有3个子网站中都有一个不同的表单主题,所以它们都有一个(略)不同的主题。

因此,我可以在symfony配置中设置主题,但是对于3个子网中的2个,这将是错误的。

我可以手动设定一个主题用:

{% form_theme form 'MyUberCoolBundle:Form:theme.html.twig' %} 

但我真的不希望这样做,对于每一个形式。 我可以在基本模板中设置它,但是我的表单总是需要被称为“表单”。

有没有一种方法来设置在基本模板中使用的主题,以便它将用于所有表单?

回答

0

四处寻找的答案后,我得出的结论是只有在配置中才能做到这一点。

我们使出了以下解决方案中config.yml

我们配置了一个全局变量树枝:

twig: 
    globals: 
     frontend_form_theme:   'MyUberCoolBundle:Form:theme.html.twig' 

然后,我们只使用全局变量呈现之前设置窗体本身的正确主题。 这甚至可以让我们在需要时使用不同的东西。

{% form_theme form frontend_form_theme %} 
{{ form_start(form) }} 
0

设置全局为您的应用主题,你可以将其设置在配置

twig: 
    form_themes: 

     # Default: 
     - form_div_layout.html.twig 

     # Bootstrap: 
     - bootstrap_3_layout.html.twig 
     - bootstrap_3_horizontal_layout.html.twig 

     # Example: 
     - MyBundle::form.html.twig 

查看完整的枝条配置参考here

+0

我知道如何设置全球主题。但是如何为网站的不同分区设置不同的分区?另外,当你在你的配置中设置这4个时,实际使用哪一个? – DoppyNL

0

我正在寻找类似的东西。为FrontOffice使用主题和在后台使用另一个主题。

我明白了。我用一个正常的配置在config.yml作为正常的FrontOffice这样的:

twig: 
globals: 
    frontend_form_theme:   'form/fields.html.twig' 

然后我在主要的BackOffice themplate使用像layout.html.twig:

{% if oForm is defined %} {% form_theme oForm 'bootstrap_3_layout.html.twig' %} {% endif %} 

所以,引导程序为名称为oForm的所有表单定义。