6

使い方がかなり混乱していますpartialLoop

現在使用しています

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

$childrenTodosDoctrine\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()」。部分ループを使用するにはどうすればよいですか?

4

2 に答える 2

8

これを試して

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

次に、パーシャルで次のようにオブジェクトにアクセスできます

$this->object

objectオブジェクトが割り当てられる変数の名前です

このようなビューオブジェクトにアクセスできる場合は、Bootstrapまたは他の初期化クラスでこれを1回行うこともできます。

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

また、提案された構文を試したときに「非オブジェクトで関数を呼び出す」エラーが発生しました。これは、ZendFrameworkの新しいバージョンで何かが変更されたようです。ZF1.12では次のように動作します。

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