2012-10-02 38 views
5

Symfony 2'de render alanın name niteliği nasıl ayarlanır?Symfony 2 form alanının ad niteliğini ayarlama

Beklenen çıkışı: sahadan

 {{ form_widget(form.test, { 'attr': {'name': 'test'} }) }} 

kesinlikle çalışmaz bu şekilde Rendering

 <input type="text" name="test" value="test" /> 

.

Çıktı

 <input type="text" name="form[test]" value="test" />. 

adı özniteliği veya id dinamik özellik ayarlamak için herhangi bir yolu var mı hala? Teşekkür ederim.

+1

bkz http://stackoverflow.com/questions/8416783/symfony2-form-component-creating-fields-without-the-forms-name-in-the-name-att – max

cevap

1
<input type="text" name="form[test]" value="test" /> 

zaten isim olarak test sahiptir. Tabii ki hala sizin durumunuzda form olarak adlandırılan kök form adı var. Bunu kaldırmak gerçekten önerilmez, çünkü form verilerini doldurma isteğini okuduğunuzda, formu form adıyla tanımlayabilirsiniz.

{% block widget_attributes -%} 
id="{{ id }}" 
{%- if read_only %} readonly="readonly"{% endif -%} 
{%- if disabled %} disabled="disabled"{% endif -%} 
{%- if required %} required="required"{% endif -%} 
{%- for attrname, attrvalue in attr -%} 
    {{- " " -}} 
    {%- if attrname in ['placeholder', 'title'] -%} 
     {{- attrname }}="{{ attrvalue|trans({}, translation_domain) }}" 
    {%- elseif attrvalue is sameas(true) -%} 
     {{- attrname }}="{{ attrname }}" 
    {%- elseif attrvalue is not sameas(false) -%} 
     {{- attrname }}="{{ attrvalue }}" 
    {%- endif -%} 
{%- endfor -%} 
name={{full_name}} 
{%- endblock widget_attributes %} 

değişiklik sadece hareket ediyor name = {{FULL_NAME}} İlk satırından için:

Oku [Formu] Twig bloğunu bu şekilde geçersiz kılma boş kök form adınıhttps://github.com/symfony/symfony/pull/2936

1

etkinleştirme Sonuncusu, bu yüzden form oluşturucu ekle elemanına attr adını eklediğinizde, isim artık göz ardı edilmeyecektir.

+0

Varsayılan olarak dosya "Symfony/Köprü/Twig/Kaynaklar/görünüm/Form/form_div_layout.html.twig" – HRoux