2011-01-25 16 views
6

मैं काफी कैसे उपयोग करने के लिए partialLoopवस्तुओं

वर्तमान में मैं का उपयोग

foreach ($childrenTodos as $childTodo) { 
    echo $this->partial('todos/_row.phtml', array('todo' => $childTodo)); 
} 

$childrenTodos एक Doctrine\ORM\PersistantCollection है उलझन में हूँ के साथ Zend फ्रेमवर्क के आंशिक लूप का उपयोग कैसे करें, $childTodo एक Application\Models\Todo

मैं कर रहा करने की कोशिश की है

echo $this->partialLoop('todos/_row.phtml', $childrenTodos) 
      ->setObjectKey('Application\Models\Todo'); 

लेकिन आंशिक रूप से जब मैं अपने टोडो क्लास के गुणों/कार्यों तक पहुंचने का प्रयास करता हूं, तो मुझे लगता है कि जब मैं $this->myFunction() आंशिक रूप से उपयोग करता हूं या यदि मैं $this->todo->getName() का प्रयास करता हूं तो मुझे हमेशा अपरिभाषित विधि Zend_View::myFunction() पर कॉल के साथ समाप्त होने लगते हैं। किसी गैर-ऑब्जेक्ट पर सदस्य फ़ंक्शन getName() पर कॉल करें "। मैं partialLoops का उपयोग कैसे करूं?

उत्तर

8

अपने आंशिक में फिर इस

echo $this->partialLoop('todos/_row.phtml', $childrenTodos) 
     ->setObjectKey('object'); 

प्रयास करें तो आप इस

$this->object 

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

आप को सौंपा जाएगा है यदि आपके पास व्यू ऑब्जेक्ट तक पहुंच है तो

जैसे दृश्य बूट तक पहुंचने के बाद यह आपके बूटस्ट्रैप या अन्य प्रारंभिक कक्षा में भी एक बार ऐसा कर सकता है
protected function initPartialLoopObject() 
{ 
    $this->_view->partialLoop()->setObjectKey('object'); 

    $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer'); 
    $viewRenderer->setView($this->_view); 
} 
+1

मुझे यह सुनिश्चित नहीं है कि मुझे अभी भी गैर ऑब्जेक्ट त्रुटि पर काम करने के लिए कॉल क्यों मिल रहा है, मेरा कोड http://pastebin.com/z07phdHj। अजीब चीज यह है कि जब मैं 'echo get_class ($ this-> todo) echo कोशिश करता हूं, तो मुझे 'Zend_View' –

+1

मिलता है क्या आप इसे अपने बूटस्ट्रैप या इसी तरह सेट करने का प्रयास कर सकते हैं, यह हो सकता है कि आप इसे ऑब्जेक्ट्स के लिए' todo' का उपयोग करने के लिए कहें भाग के रूप में 'partialLoop'? –

+2

मुझे लगता है कि इसे सेट करने के लिए यह एक बेहतर विचार होगा कि यह b4 'echo $-- partialLoop() 'के रूप में यह एक सामान्य ऐप चीज़ नहीं है। फिर भी धन्यवाद –

1

सुझाए गए वाक्यविन्यास का प्रयास करते समय भी मुझे "ऑब्जेक्ट पर फ़ंक्शन पर कॉल करने के लिए कॉल" त्रुटि थी, ऐसा लगता है कि उन्होंने ज़ेंड फ्रेमवर्क के बाद के संस्करणों में कुछ बदल दिया है। ZF1.12:

echo $this->partialLoop() 
->setObjectKey('object') 
->partialLoop('todos/_row.phtml', $childrenTodos); 
संबंधित मुद्दे