6

我很困惑如何使用partialLoop

目前我使用

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

$childrenTodos是一个Doctrine\ORM\PersistantCollection$childTodo是一个Application\Models\Todo

我试着做

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

Zend_View::myFunction()但是在部分中,当我尝试访问我的 Todo 类的属性/函数时,当我在部分中使用时,我似乎无法让它们总是以调用未定义的方法结束,$this->myFunction()或者如果我尝试$this->todo->getName()得到“调用成员函数” getName() 在非对象上”。如何使用部分循环?

4

2 回答 2

8

Try this

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

Then in your partial you can access the object like this

$this->object

object is the name of the variable that an object will be assigned to

You can also do this once in your Bootstrap or other initialization class if you have access to the view object like so

protected function initPartialLoopObject()
{
    $this->_view->partialLoop()->setObjectKey('object');

    $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
    $viewRenderer->setView($this->_view);
}
于 2011-01-25T14:25:22.990 回答
1

在尝试建议的语法时,我也遇到了“调用非对象函数”错误,似乎他们在 Zend Framework 的更高版本中改变了一些东西。以下适用于 ZF1.12:

echo $this->partialLoop()
->setObjectKey('object')
->partialLoop('todos/_row.phtml', $childrenTodos);
于 2013-05-02T07:44:54.540 回答