नोट: क्या मैं यहाँ कर रहा हूँ embedding controllers < है --- एक समान (सरकारी) उदाहरण के लिए कि लिंक देखें।Symfony2 - टहनी नियंत्रक प्रस्तुत करना और लौट सरणी प्रतिक्रिया
मैं एक टहनी टेम्पलेट से कोई नियंत्रक कहते हैं, और है कि नियंत्रक एक सरणी कि मैं तो मेरे टेम्पलेट के बाकी भर में उपयोग कर सकते हैं वापसी करना चाहते हैं।
मैं व्यक्तिगत चर के साथ ऐसा कर सकते हैं: ("The Response content must be a string or object implementing __toString(), "array" given.")
ही टहनी के साथ: नियंत्रक
टहनी
{% set testVar = render(controller('AppBundle:Test:index')) %}
class TestController extends Controller
{
public function testAction()
{
return new Response('OH HAI');
}
}
हालांकि, निम्नलिखित एक अपवाद फेंकता फ़ाइल।
public function testAction()
{
return new Response(array('test' => 1, 'foo' => 'bar'));
}
यह ऊपर अपवाद फेंकता है। प्रस्तुत करने के लिए नियंत्रक के लिए एक डमी, बेकार अतिरिक्त टेम्पलेट बनाने के बिना मैं को कैसे प्राप्त कर सकता हूं?
आप जो करने की कोशिश कर रहे हैं वह एमवीपी पैटर्न तोड़ रहा है (आप दृश्य परत में तर्क डाल रहे हैं)। मेरी सलाह आपके समाधान पर पुनर्विचार है। हो सकता है कि यदि आप और अधिक कहें जो आप प्राप्त करना चाहते हैं तो मैं और कह सकता हूं। चीयर्स! – Cyprian
उत्तर @ साइप्रियन के लिए धन्यवाद, मुझे ऐसा करने में गलत लगा, तो शायद एक और तरीका है। मेरा दृश्य 3 ट्विग टेम्पलेट्स में विभाजित है जो एक लेआउट टेम्पलेट का विस्तार करता है: ** हेडर **, ** साइडबार ** और ** सामग्री **। * साइडबार * प्रत्येक पृष्ठ लोड पर गतिशील डेटा की आवश्यकता होगी (उदाहरण के लिए कुछ लाइव आंकड़े)। मुझे साइडबार में इस डेटा को शामिल करने की आवश्यकता है चाहे कोई भी सामग्री * टेम्पलेट में क्या हो। – Jimbo
मेरा उद्देश्य साइडबार को कोड करना था, इसे अपने स्वयं के डेटा को एक अलग नियंत्रक से पुनर्प्राप्त करना था, और फिर भविष्य में जो कुछ भी मैं कोड करता हूं वह सिर्फ सामग्री पृष्ठ है और मुझे साइडबार के आंकड़े प्राप्त करने के लिए किसी भी कोड को डुप्लिकेट करने की आवश्यकता नहीं है। – Jimbo