如何使用Twig创建可重用的表单输入?

时间:2018-06-10 14:17:34

标签: php forms twig code-reuse

我正在使用PHP和Twig作为一个应用程序,我希望能够在整个站点上提供一致的表单输入,这些输入都是从代码中的一个位置呈现的。

也就是说,我希望所有表单输入生成标记都在一个地方,这样如果/当我想要改变表单输入在整个站点中的外观和功能时,我可以在一个地方改变一件事放置并让它随处可见。

使用Twig实现此目的的最佳方法是什么? 谢谢。

1 个答案:

答案 0 :(得分:3)

使用twig' macro

https://twig.symfony.com/doc/2.x/tags/macro.html

forms.html:

{% macro input(name, value, type, size) %}
    <input type="{{ type|default('text') }}" name="{{ name }}" value="{{ value|e }}" size="{{ size|default(20) }}" />
{% endmacro %}

用法:

{% import "forms.html" as forms %}
<p>{{ forms.input('password', null, 'password') }}</p>