我很困惑如何使用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');
但是当我尝试访问我的Todo类的属性/函数时,我似乎无法在我使用Zend_View::myFunction()
时调用未定义的方法$this->myFunction()
。部分或如果我尝试$this->todo->getName()
我得到“在非对象上调用成员函数getName()”。我如何使用partialLoops?
答案 0 :(得分:8)
试试这个
echo $this->partialLoop('todos/_row.phtml', $childrenTodos)
->setObjectKey('object');
然后在你的部分中你可以像这样访问对象
$this->object
object
是将对象分配给
如果您可以访问视图对象,也可以在Bootstrap或其他初始化类中执行一次
protected function initPartialLoopObject()
{
$this->_view->partialLoop()->setObjectKey('object');
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
$viewRenderer->setView($this->_view);
}
答案 1 :(得分:1)
在尝试使用建议的语法时,我也遇到了“在非对象上调用函数”错误,似乎他们在更高版本的Zend Framework上改变了一些东西。以下适用于ZF1.12:
echo $this->partialLoop()
->setObjectKey('object')
->partialLoop('todos/_row.phtml', $childrenTodos);