2013-02-08 7 views
7

W moim edit.html.twig mam:Jak uzyskać zmienną encji lub przekazać do widgetu gałązki Symfony2?

{% 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 }) }} 

Nie mam img_src i podmiot dumpingowych bez problemu.
W form.html.twig mam:

{% 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 tylko bootstraped * form_div_layout.html.twig *
I w tym widgecie nie mam img_src ani podmiot.
Jakieś pomysły, jak uzyskać encję w widżecie? Czy powinien zostać przekazany do postaci widgetu czy jest inny sposób? Co ja robię źle?

Odpowiedz

8

Każdy typ symfony obejmuje klasy AbstractType.

klasa AbstactType ma metody:

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

} 

Można tworzyć tę metodę od rodzaju formy i kolejny w swojej gałązce:

{{ asset(img_src) }} 
+0

To wciąż daje mi _Variable „podmiot” nie exist_. W kontrolerze: '$ editForm = $ this-> createForm (nowy EntityType(), $ entity, array ('em' => $ em," entity "=> $ entity));'. W metodzie EntityType metoda setDefaultOptions: '$ resolver-> setRequired (array ('entity')); oraz w metodzie BuildView:' $ view-> vars ['entity'] = $ options ['entity']; '. W bloku motywu formularza __entity_field_widget_ {{dump (entity)}}. Co mnie ominęło? (Porzucone $ options ['entity'] - to jest to, czego potrzebuję) – CRONUS

+3

Wyświetl zmienne są widoczne tylko na bieżącym poziomie formularza - gdzie są zadeklarowane. W widżetach nadrzędnych, takich jak "entity_field", spróbuj użyć form.parent.vars.entity, form.parent.vars.img_src –

+0

To wszystko;) Dzięki – CRONUS

Powiązane problemy