gpt4 book ai didi

php - 为应用程序后端和前端全局设置2个不同的表单主题的最方便的方法是什么

转载 作者:搜寻专家 更新时间:2023-10-31 21:09:01 24 4
gpt4 key购买 nike

因此,在 Symfony2 中为表单设置主题很容易。您创建一个自定义主题文件并将其添加到您的 config.yml 文件以加载它。完成。

但是,我有 2 个不同的表单主题。一种用于应用程序的前端,一种用于应用程序的后端。

我浏览了文档 ( http://symfony.com/doc/2.3/cookbook/form/form_customization.html ),但找不到一个好的简单方法来执行此操作。

当我将主题添加到 config.yml 文件时,我在前端和后端都有相同的主题。我还可以像这样在每个 View 中包含表单

{% form_theme form 'form_table_layout.html.twig' %}

但是,这意味着我必须在每个 View 中执行此操作。

有没有办法为前端和后端创建一个单独的配置文件?我能否以某种方式在基本模板文件中指明应使用哪个表单主题?

还有什么我可以做的吗?

最佳答案

如果您使用 Symfony2 默认目录结构,即前端和后端都有一个内核,您只能(如您所述)在每个模板中设置表单主题,或使用相同的模板应用程序-通过在 config.yml 文件中设置它。

您提到的替代解决方案是创建两个基本模板,每个模板都设置一个“全局”form_theme 标签在理论上是可行的。使用以下标记为所有前端页面创建基本 front-end.html.twig 模板:

{% form_theme form 'form-front-end.html.twig' %}

这可行,但您将被迫在每个继承的模板中拥有一个 form 变量。您也无法将主题设置为同一页面中的多个表单。

您可以通过在设置样式之前检查表单变量是否已定义来改进解决方案:

{% if form is defined %}
{% form_theme form 'form-front-end.html.twig' %}
{% endif %}

或者更好的是,如果您希望能够将多个表单传递给同一个模板,您可以使用 forms 数组来实现:

{% if forms is defined %}
{% for form in forms %}
{% form_theme form 'form-front-end.html.twig' %}
{% endfor %}
{% endif %}

好处是这不会抛出任何异常,即使你根本不传递变量,但你必须记住将要呈现的任何表单放入 forms 数组中.

显然,您会对后端基本模板执行相同的操作。

可能有更好的解决方案,但与此同时我希望这对您有所帮助!

关于php - 为应用程序后端和前端全局设置2个不同的表单主题的最方便的方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25827971/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com