加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 使用Symfony2 Twig表单的快捷方式:form_widget

发布时间:2020-12-13 16:20:52 所属栏目:PHP教程 来源:网络整理
导读:我想替换: {{ form_errors(form.name) }}{{ form_widget(form.name,{ 'attr': {'placeholder': 'Nom'} }) }} 通过: {{ form.name|field('Nom') }} 我怎么能这样做?我尝试在Twig扩展中执行此操作,但我无法访问form_widget函数. 编辑:我可以使用form.name
我想替换:

{{ form_errors(form.name) }}
{{ form_widget(form.name,{ 'attr': {'placeholder': 'Nom'} }) }}

通过:

{{ form.name|field('Nom') }}

我怎么能这样做?我尝试在Twig扩展中执行此操作,但我无法访问form_widget函数.

编辑:我可以使用form.name属性(包括父窗体),但我会重复symfony代码,这将是一个非常丑陋的大黑客

解决方法

如果你让我将attr移动到你的表单类更有意义:

class SomeForm extends AbstractType {
      //.....
      $builder->add('name','text',array('attr' => array('placeholder'=>'Nom')));
}

由于我猜您需要为某些字段进行自定义渲染,因此您可以检查:

http://symfony.com/doc/2.0/cookbook/form/form_customization.html#how-to-customize-an-individual-field

您还可以创建一个新类型并按照此处的说明进行自定义:

http://symfony.com/doc/2.0/cookbook/form/form_customization.html#what-are-form-themes

您甚至可以更改默认的呈现方式,并让symfony默认使用字段的标签字符串呈现占位符标记(全局启用表单主题的详细信息由上面引用的链接覆盖):

{% block text_widget %}
    {% set type = type|default('text') %}
    <input type="text" {{ block('widget_attributes') }} value="{{ value }}" />
{% endblock field_widget %}

{% block widget_attributes %}
  {% spaceless %}
    {% for attrname,attrvalue in attr %}{{attrname}}="{{attrvalue}}" {% endfor %} placeholder="{{ label|trans }}"
  {% endspaceless %}
{% endblock widget_attributes %}

{% block form_row %}
  {% spaceless %}
    <div class="my-class">
        {{ form_errors(form) }}
        {{ form_widget(form) }}
    </div>
  {% endspaceless %}
{% endblock form_row %}

因此,您将使用symfony提供的主题将自己限制为form_row(form.name).Symfony的aproach对我来说看起来“非常”干/坏.希望能帮助到你.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读