2011-09-07 14 views
16

ठीक है, मुझे पता है कि मैं सचमुच नियंत्रक से एक टिग टेम्पलेट फ़ंक्शन नहीं कह सकता हूं, लेकिन लिंक बनाने के लिए, मैं आमतौर पर {{ path('_routeName') }} करता हूं और यह बहुत अच्छा है।मैं नियंत्रक से Twig पथ() फ़ंक्शन कैसे एक्सेस करूं?

हालांकि, अब मैं नियंत्रक है कि तब इस तरह मानकों के माध्यम से टेम्पलेट को दे दिया जाएगा में कुछ लिंक तैयार करने के लिए करना चाहते हैं:

$params = array(
    'breadcrumbs' = array(
     'Donuts' => '/donuts', 
     'Bearclaws' => '/donuts/bearclaws', 
     'Strawberry bearclaw' => null, 
    ), 
); 
return $this->render('Bundle:Donut:info.html.twig', $params); 

सिवाय मैं कड़ी मेहनत से कोड के लिए उन लिंक्स नहीं करना चाहती। मुझे क्या करना है

 'Donuts' => path('_donutRoute'), 

लेकिन पथ विधि या समकक्ष तक कैसे पहुंचे?

उत्तर

36

अपने नियंत्रक Symfony2 नियंत्रक (Symfony\Bundle\FrameworkBundle\Controller\Controller) प्रदान कर रहा है, तो आप इस तरह यूआरएल उत्पन्न करने के लिए निम्न का उपयोग कर सकते हैं:

$this->generateUrl('_donutRoute')

+10

और नहीं तो, '$ this-> container-> हो ('रूटर') -> उत्पन्न ('_ donutRoute');' क्या करेंगे तुम ठीक हो – Problematic

2

मुझे लगता है कि मुझे लगता है कि यह करने के लिए एक वैकल्पिक तरीका पाया के बराबर है

'breadcrumbs' = array(
    'Donuts' => 'donutsRoute', 
    'Bearclaws' => 'bearclawRoute', 
    'Strawberry bearclaw' => null, 
) 

: एक

योजना d.syph.3r @ द्वारा प्रस्तावित करने के लिए है एन टिग टेम्पलेट में, करें:

{% for name, route in breadcrumbs %} 
    {{ path(route) }} 

यहां लाभ यह है कि नियंत्रक इस मामले में कोई HTML उत्पन्न नहीं कर रहा है।

8

आप मानकों के साथ यह चाहते हैं निम्नलिखित का उपयोग करें:

$this->generateUrl('_donutRoute', array('param1'=>'val1', 'param2'=>'val2')) 
संबंधित मुद्दे

 संबंधित मुद्दे