2011-05-20 9 views
14

मैं एक टिग ब्लॉक में टेबल हेडर जेनरेट करना चाहता हूं और उन्हें पूरे पृष्ठ पर पुन: उपयोग करना चाहता हूं, इस पृष्ठ में लगभग 5 अलग-अलग टेबल हैं जिनमें लगभग समान हेडर हैं। ब्लॉक कोड इस तरह है:मैं सिम्फनी 2 ट्विग ब्लॉक में पैरामीटर कैसे पास कर सकता हूं?

{% block table_headers %} 
    <th>Fiscal Year</th> 
    <th>End Date</th> 
    <th>Period Length</th> 
    {% for item in result.FinancialStatements.COAMap.mapItem %} 
     {% if item.statementType == statementType %} 
      <th>{{ item._ }} ({{ item.coaItem }})</th> 
     {% endif %} 
    {% endfor %} 
{% endblock %} 

उपरोक्त कोड में महत्वपूर्ण लाइन

{% if item.statementType == statementType %} 

है मैं statementType पैरामीटर मैं कहाँ ब्लॉक प्रतिपादन कर रहा हूँ, इसलिए की तरह के रूप में पास करना चाहते हैं:

{% render block.table_headers with {'statementType': 'INC'} %} 

लेकिन यह काम नहीं करता है। मैं वैचारिक निकटता के लिए ब्लॉक और उसके प्रतिपादन को एक ही फ़ाइल (लेकिन विभिन्न ब्लॉक) में रखना चाहता हूं।

क्या इस तरह के ब्लॉक का उपयोग करना भी संभव है? मैंने सिम्फनी 2 दस्तावेज़ों को देखा है और यह सुझाव दिया जा सकता है कि यह किया जा सकता है, लेकिन ऐसा लगता है कि यह मेरे लिए ब्लॉक का स्पष्ट उपयोग है।

उत्तर

12

प्रतिपादन की देखभाल कर रही एक अद्यतन नहीं है सिम्फनी 2.2 में टैग शामिल करने के लिए जो आपको इससे मदद कर सकता है। यहाँ नए टैग का एक उदाहरण है: {{ include('FTWGuildBundle:Help:popover.html.twig', {'content':helpContent,'title':helpTitle}) }}

यह हो सकता है कि तुम क्या जरूरत है, क्योंकि यह एक नियंत्रक करने के लिए एक उप अनुरोध क्या करने वाले टाल (render इस करता है) यह बेहतर प्रदर्शन करने वाले हो जाएगा।

मेरे उदाहरण में, मैं एक सहायता पॉपओवर के लिए एचटीएमएल और शीर्षक और सामग्री प्रदान कर रहा हूं।

+0

काश इस सुविधा नहीं थी जब मैं पहली बार 2011 में +1 – Adil

+0

धन्यवाद प्रश्न पोस्ट - यह मैं वास्तव में क्या ढूंढ रहा था और मतलब है कि मैं routing.yml में किसी भी मार्गों को जोड़ने के लिए नहीं था। – someuser

4

लगता है जैसे आप टिग के macros feature चाहते हैं। वैकल्पिक रूप से अपने ब्लॉक को एक अलग टेम्पलेट के रूप में लिखें और include का उपयोग करें।

+0

मैं वैश्विक मानकों के साथ मैक्रो और ब्लॉकों का उपयोग कर समाप्त हो गया। तर्क यह है कि एकाधिक फ़ाइलों में एक साथ अंतर्गत आता है अलग होगा भी शामिल है, मैं उस से बचते रहे। – Adil

7

{% render block.table_headers with {'statementType': 'INC'} %} सिम्फनी द्वारा मान्यता प्राप्त नहीं है। आप का उपयोग करना चाहिए:

{% render "yourBundle:controleur:action" with { 'arg1' : 'value1', 'arg2' : 'value2' } %} 
+0

यह एक नियंत्रक एम्बेड करता है, जो निश्चित रूप से क्या ओ पी के लिए पूछ रहा है। – Maerlyn

0

इसके लिए आपके लिए क्या मूल्य है। यहाँ कैसे मैं सामग्री के ब्लॉक गाया गया है, इसका एक उदाहरण। यह जो ईमेल भेजता है एक बैच अनुप्रयोग के लिए है, तो आप क्या कोशिश कर रहे हैं की तुलना में अपने एक छोटे से अलग है, लेकिन कोई कम

 $templateContent = $this->getContainer()->get('twig')->loadTemplate('FTWGuildBundle:AuctionNotification:notificationEmail.html.twig'); 
     $body = $templateContent->renderBlock('body', array('siteDomain' => $siteClient->getSiteDomain(), 'staticContentDomain' => $siteClient->getStaticContentDomain(), 'batch' => $batch->getNotifications(), 'auction_notification_lockout_period' => $this->getContainer()->getParameter('auction_notification_lockout_period'))); 
     $subject = ($templateContent->hasBlock("subject") 
      ? $templateContent->renderBlock("subject", array('batchSize' => $batch->getSize(), 'batch' => $batch)) 
      : "Auction House Notifications"); 
संबंधित मुद्दे