2013-02-08 9 views
7

Ben: Symfony2 twig form widget'ına varlık nasıl girilir veya değişti? Benim <em>edit.html.twig</em> yılında

{% form_theme edit_form 'MyBundle:Entity:form.html.twig' %} 
{% set img_src = asset('120x100.jpg') %} 
{{ dump(img_src) }} 
{{ dump(entity) }} 
{{ form_widget(edit_form, {'form_type': 'horizontal', 'img_src': img_src }) }} 

Orada img_src ve hiçbir sorunla dampingli varlık var. yılında
form.html.twig Ben:

{% extends 'MyBundle:Form:bootstrap.html.twig' %} 
{% block _entity_field_widget %} 
    {{ dump(img_src) }} 
    {{ dump(entity) }} 
    {% set type = 'hidden' %} 
    {{ block('form_widget_simple') }} 
{% endblock _channel_media_widget %} 

bootstrap.html.twig sadece ön yükleme yapılmış olan * form_div_layout.html.twig * Ve bu widget'ınızda hiçbir img_src var
veya numaralı.
Widget'ta varlık nasıl edinilebileceği hakkında herhangi bir fikrin var mı? Widget oluşturmak için mi geçmeli yoksa başka bir yol var mı? Neyi yanlış yapıyorum?

cevap

8

Her symfony form tipi, AbstractType sınıfını genişletir.

public function buildView(FormView $view, FormInterface $form, array $options) 
{ 
    $view->set('img_src', '120x100.jpg'); 
    $view->set('my_variable', $foo); 

} 

Sen formu türüne bu yöntemi oluşturmak ve dal sonraki edebilirsiniz: Hala bana exist_ gelmez _Variable "varlık" verir

{{ asset(img_src) }} 
+0

AbstactType sınıf yöntemi vardır. Denetleyicide: '$ editForm = $ this-> createForm (yeni EntityType(), $ varlık, dizi ('em' => $ em, 'varlık' => $ varlık)). EntityType setDefaultOptions yönteminde: $ resolver-> setRequired (dizi ('varlık')); 've BuildView yönteminde: $ view-> vars ['varlık'] = $ options ['entity'];'. Form teması bloğunda __entity_field_widget_ {{dump (varlık)}}. Ne kaçırdım? (Dumped $ options ['varlık'] - ihtiyacım olan şey) – CRONUS

+3

Görünüm değişkenleri yalnızca geçerli form düzeyinde görünür - bildirilenler. "Entity_field" gibi ana widget'larda form.parent.vars.entity'i kullanmayı deneyin, form.parent.vars.img_src –

+0

Bu kadar;) Teşekkürler – CRONUS

İlgili konular