- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
因此,在 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/
在javascript中,我可以这样写 console.log( person.name || person.nickname || '-' ) 然后会先查找name字段,如果找不到,会回退到nick
在为通用接口(interface)编写回调时,定义他们自己负责创建和访问的本地数据可能很有用。 在 C 中,我只使用一个空指针,类 C 示例: struct SomeTool { int ty
我是一名优秀的程序员,十分优秀!