मैं जो करना चाहता हूं वह फ़ॉर्म व्यू में संग्रहीत चर प्राप्त करता है।एक टॉग टेम्पलेट में विजेट ओवरराइड करते समय सीधे फॉर्म फ़ील्ड के मान तक पहुंचें
{% form_theme edit_form _self %}
{% block field_widget %}
{% spaceless %}
{% set type = type|default('text') %}
<input type="{{ type }}" {{ block('widget_attributes') }} {% if value is not empty %}value="{{ value }}" {% endif %}/>
{# MY CODE #}
{% if type == "file" %}
<a class="BOpreview" href="{# NEED TO REPLACE VAR HERE #}">Aperçu</a>
{% endif %}
{# MY ATTEMPT #}
{{ form.title.get('value') }}
{{ form.vars.value.url }}
{% endspaceless %}
{% endblock field_widget %}
मेरे रूप में यूआरएल, शीर्षक इत्यादि जैसी गुण हैं और मैं इसे फील्ड विजेट ब्लॉक में उपयोग करने के लिए यहां पहुंचने का प्रयास कर रहा हूं।
मैं इसके लिए खोज की है और https://groups.google.com/forum/?fromgroups=#!topic/symfony2/onor9uFte9E कि सुझाव पर आया था:
{{ form.title.get('value') }}
{{ form.vars.value.url }}
जो मेरे लिए काम नहीं किया।
नोट: अगर मैं $ फार्म पर एक var_dump करना> createView() मेरी नियंत्रक में, मैं मिलता है:
object(Symfony\Component\Form\FormView)[331]
private 'vars' =>
array (size=15)
'value' =>
object(Panasonic\TestEtAvisBundle\Entity\Product)[168]
protected 'reviewArray' =>
object(Doctrine\ORM\PersistentCollection)[234]
...
protected 'testArray' =>
object(Doctrine\ORM\PersistentCollection)[221]
...
protected 'fbshareArray' =>
object(Doctrine\ORM\PersistentCollection)[317]
...
private 'id' => int 2
private 'name' => string 'Nom du produit' (length=14)
private 'title' => string '<span>Titre </span>' (length=19)
private 'image' => string 'bundles/testetavis/uploads/product/0d9d9550.png' (length=47)
private 'fbImage' => string 'bundles/testetavis/uploads/product/facebook//product_e928cd96.jpg' (length=65)
private 'description' => string '<span>Descriptif </span>' (length=24)
private 'url' => string 'http://www.google.com' (length=21)
private 'creationDate' =>
object(DateTime)[210]
...
private 'modificationDate' =>
object(DateTime)[209]
...
private 'isDeleted' => int 0
'attr' =>
array (size=0)
empty
'form' =>
&object(Symfony\Component\Form\FormView)[331]
'id' => string 'panasonic_testetavisbundle_producttype' (length=38)
'name' => string 'panasonic_testetavisbundle_producttype' (length=38)
'full_name' => string 'panasonic_testetavisbundle_producttype' (length=38)
मैं उदाहरण के लिए कि यूआरएल तक पहुँचने के लिए चाहते हैं, लेकिन करने में सक्षम हो नहीं कर पा रहे कई बदलावों के बाद करो। {{Value}}, {{value.url}} का उपयोग सहित, लेकिन वर्र्स के बावजूद, मैं {{full_name}} कर सकता हूं और panasonic_testetavisbundle_producttype प्राप्त कर सकता हूं।
कोई भी विचार?
EDIT2: मैं वास्तविक समस्या को पता चला ...
Edit3: यह देखते हुए कि इस सवाल का काफी लोकप्रिय रहा है कि मैं क्या मामले में क्या करने का प्रयास किया पर स्पष्ट करने के लिए यह एक ही में किसी को मदद करता है का फैसला किया है परिस्थिति। यदि आप सवाल पूछते हैं कि प्रश्न के बारे में आप कड़ाई से भरोसा करते हैं, जैसा कि मैंने अपने शोध से कहा है और बेस्निक समर्थित वास्तव में सही हैं। अब मैं जो करना चाहता था वह प्रत्येक इनपुट प्रकार फ़ाइल के लिए है, इनपुट प्रकार फ़ाइल के बगल में पुनर्प्राप्त यूआरएल का उपयोग करके प्रपत्र प्रस्तुत करने के लिए प्रयुक्त ऑब्जेक्ट से यूआरएल प्राप्त करें और एक पूर्वावलोकन लिंक संलग्न करें। यदि आप मेरे कोड में "{{form.vars.value.url}}" जैसे इनपुट प्रकार "फ़ाइल" के रूप var को प्राप्त करने का प्रयास करते हैं, तो यह ठीक से याद नहीं होने पर, यह तब से काम नहीं करता है, आपको एक प्राप्त होता है ऑब्जेक्ट के अंदर संग्रहीत यूआरएल के बजाय टोकन।
यदि आप डंप देखते हैं, तो यूआरएल एक निजी संपत्ति है। क्या आपके पास इसके लिए गेटटर है? (एक getValue() फ़ंक्शन) –
मैंने अपना प्रश्न अधिक विशिष्ट होने के लिए संपादित किया। जबकि {{form.vars.value.title}} फ़ॉर्म में पूरी तरह से काम करता है, यह उस विजेट ब्लॉक के अंदर कुछ भी नहीं दिखाता है जिसे मैंने ओवरराइड किया है। मैं ओवरराइड ब्लॉक के अंदर फॉर्म वैल्यू प्राप्त करने की कोशिश कर रहा हूं। कोड में {% ब्लॉक field_widget%} देखें। कोई विचार? – Rishi
@ बेस्निक मुझे form.vars.value पर 'डंप' का उपयोग करने में परेशानी हो रही है। मुझे पता है डंप सक्षम है क्योंकि मैं इसे कहीं और इस्तेमाल कर सकता हूं। कोई विचार? –