2013-02-08 35 views
7

मेरी edit.html.twig में मेरे पास है:सिमफ़ोनी 2 ट्विग फॉर्म विजेट में इकाई या पास चर कैसे प्राप्त करें?

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

वहाँ मैं img_src और इकाई कोई समस्या नहीं के साथ छोड़ दिया है।
में form.html.twig मेरे पास है:

{% 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 सिर्फ एक bootstraped है * form_div_layout.html.twig *
और वह विजेट में मुझे कोई img_src है न ही इकाई
कोई विचार विजेट में इकाई कैसे प्राप्त करें? क्या इसे विजेट बनाने के लिए पास किया जाना चाहिए या कोई और तरीका है? मैं क्या गलत कर रहा हूं?

उत्तर

8

प्रत्येक सिम्फनी फॉर्म प्रकार सार तत्व प्रकार को बढ़ाता है।

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

} 

आप अपने प्रपत्र प्रकार पर इस विधि बना सकते हैं और अपने टहनी में अगले:

{{ asset(img_src) }} 
+0

यह अभी भी मुझे _Variable "इकाई" exist_ नहीं है देता है

AbstactType वर्ग विधि है। नियंत्रक में: '$ संपादित करेंफॉर्म = $ यह-> createForm (नई EntityType(), $ इकाई, सरणी (' em '=> $ em,' entity '=> $ इकाई)); '। EntityType setDefaultOptions विधि में: '$ resolver-> setRequired (सरणी ('इकाई')); 'और BuildView विधि में:' $ view-> vars [' entity '] = $ विकल्प [' entity ']; '। फॉर्म थीम ब्लॉक में __entity_field_widget_ {{डंप (इकाई)}}। मुझसे क्या छूट गया? (Dumped $ विकल्प ['entity'] - मुझे इसकी आवश्यकता है) – CRONUS

+3

देखें चर केवल वर्तमान फॉर्म स्तर पर दिखाई दे रहे हैं - जहां घोषित किया गया है। "Entity_field" जैसे पैरेंट विगेट्स में form.parent.vars.entity का उपयोग करने का प्रयास करें, form.parent.vars.img_src –

+0

यह है;) धन्यवाद – CRONUS