2011-05-30 17 views
6

मैंने उपयोगकर्ता इनबॉक्स संदेश लाने और इसे "उपयोगकर्ता-प्रोफ़ाइल-संदेश" टेम्पलेट का उपयोग करके प्रदर्शित करने के लिए एक फ़ंक्शन बनाया है। यदि उपयोगकर्ता ने सभी बटन हटाए जाने पर क्लिक किया तो थोक इनबॉक्स संदेश को हटाने के लिए मैंने कार्यक्षमता (उसी फ़ंक्शन में) जोड़ा है। लेकिन सभी संदेशों को हटाने के बाद, पेज/टेम्पलेट रीडरिंग नहीं कर रहा है। कृपया मुझे बताएं कि कारण क्या हो सकता है।PHP कोहाना फ्रेमवर्क टेम्पलेट प्रतिपादन समस्या - खाली पृष्ठ

मैं नीचे विधि का उपयोग कर पेज प्रस्तुत कर रहा हूं।

$this->template->body = View::factory("user-profile-messages", array(
      "msg" => $msg, 
      "messages" => $messages, 
     ))->render(); 

मैं कोहाना नवीनतम संस्करण का उपयोग कर रहा हूं।

+2

क्या आप अपने टेम्पलेट व्यू में '$ body' echo'ing कर रहे हैं? – alex

+0

नहीं। मैं टेम्पलेट्स को प्रदर्शित करने के लिए व्यू :: फैक्ट्री() -> रेंडर() विधि का उपयोग कर रहा हूं। – Rahul

+0

'रेंडर()' बस कनवर्ट करें ऑब्जेक्ट को स्ट्रिंग पर देखें। एलेक्स का मतलब है कि आपको अपने '$ this-> टेम्पलेट 'दृश्य में कहीं भी $ $' var को प्रदर्शित करने की आवश्यकता है। – biakaveron

उत्तर

2

सबसे पहले, अगर आप टेम्पलेट नियंत्रक का विस्तार नहीं कर रहे हैं, तो अपने कोड होना चाहिए:

$view = View::factory("user-profile-messages", array(
    "msg" => $msg, 
    "messages" => $messages, 
)); 

$this->response->body($view) 

आउटपुट $this->response->body($view) द्वारा निर्धारित है। कॉलिंग रेंडर की आवश्यकता नहीं है क्योंकि इसमें __toString विधि है।


यदि आप टेम्पलेट नियंत्रक का विस्तार कर रहे हैं, जो ऐसा लगता है कि आप हैं। यह उत्पादन स्वचालित रूप से renders जब तक आप स्पष्ट रूप से यह नहीं बता:

$this->auto_render = FALSE; 

डिफ़ॉल्ट रूप से, यह एक चर शरीर जो आपके विचार में शामिल होंगे साथ टेम्पलेट टेम्पलेट रेंडर करने के लिए जा रहा है।

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