我想替换:
{{ form_errors(form.name) }} {{ form_widget(form.name,{ 'attr': {'placeholder': 'Nom'} }) }}
通过:
{{ form.name|field('Nom') }}
我怎么能这样做?我尝试在Twig扩展中执行此操作,但我无法访问form_widget函数.
解决方法
如果你让我将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#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对我来说看起来“非常”干/坏.希望能帮助到你.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。