如何使用Zend Framework的部分循环与对象

Jie*_*eng 6 zend-framework zend-view

我很困惑如何使用 partialLoop

目前我用

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

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

我试过了

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

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

Jak*_*e N 8

试试这个

echo $this->partialLoop('todos/_row.phtml', $childrenTodos)
      ->setObjectKey('object');
Run Code Online (Sandbox Code Playgroud)

然后在您的部分中,您可以像这样访问对象

$this->object
Run Code Online (Sandbox Code Playgroud)

object 是对象将分配给的变量的名称

如果您有权访问视图对象,也可以在Bootstrap或其他初始化类中执行此操作一次

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

    $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
    $viewRenderer->setView($this->_view);
}
Run Code Online (Sandbox Code Playgroud)

  • 我认为将它设置为b4`echo $ this-> partialLoop()`会更好,因为它不是一般应用程序.不管怎么说,还是要谢谢你 (2认同)