2011-08-22 4 views
5

मेरे layout.html.twig में मेरे पास कुछ लिंक के साथ नेविगेशन बार है। मैं चाहता हूं कि लिंक डेटाबेस से पॉप्युलेट हो जाएं।Symfony2 - प्रत्येक पृष्ठ अनुरोध पर layout.html.twig में नेविगेशन बार को पॉप्युलेट करें

उदाहरण के लिए, नेविगेशन बार में मेरे पास 'हाल के उत्पाद' का एक ड्रॉप डाउन है। मैं डेटाबेस से मुख्य layout.html.twig में ड्रॉपडाउन कैसे पॉप्युलेट कर सकता हूं? (निश्चित रूप से इसे भविष्य में कैश किया जाएगा)

क्या मुझे फ़िल्टर बनाने की आवश्यकता है?

कोई भी मदद महान होगी। धन्यवाद

नोट: सिम्फनी 1.4 में मैं एक घटक का उपयोग करता। क्या यह सिम्फनी 2 में मौजूद है?

उत्तर

10

जवाब यहाँ है: http://symfony.com/doc/2.0/book/templating.html#embedding-controllers

मैं एक उप नियंत्रक बनाने के लिए आवश्यक और फिर मुख्य टहनी लेआउट में उप नियंत्रक दृश्य एम्बेड।

+1

मुझे लगता है कि इस विधि का उपयोग करके, आपको अपनी साइडबार में एक नया मार्ग बनाना होगा। क्या इसका मतलब यह है कि (उदाहरण के लिए) 'http: // mysite/sidebar' सार्वजनिक रूप से सुलभ यूरी है, और वह पृष्ठ लोड करेगा जहां आपकी साइडबार दिखाई देगी? ऐसा लगता है कि आपके ऐप में प्रत्येक मेनू के लिए यूरी है। आंतरिक अनुरोधों को छोड़कर, इस तरह के उपयोग को अवरुद्ध करने का कोई तरीका है? – cartbeforehorse

+0

क्या कोई समाधान है जैसे नेविगेशन को संभालने के लिए एक सेवा बनाएं? मैं नेविगेशन के साथ गंदे फ़ोल्डर नियंत्रक नहीं करना चाहता – GusDeCooL

2

क्या आपने @ knplabs मेनू-बंडल देखा था? https://github.com/knplabs/KnpMenuBundle

वे वही कर रहे हैं जो आप चाहते हैं ... यह देखने के लिए स्रोत देखें कि वे इसे कैसे प्राप्त करते हैं।

+2

हे फ्लास्क, मेरे पास है, लेकिन मैं बस इतना करना चाहता हूं कि मेरे पास पहले से मौजूद कुछ मार्कअप से एक साधारण मेनू जोड़ना है। मुझे समाधान मिला: http://symfony.com/doc/2.0/book/templating.html#embedding-controllers मुझे नियंत्रक को एम्बेड करने की आवश्यकता है। सब पूरी तरह से काम कर रहा है। धन्यवाद! – Flukey