Zend framework Zend:在PartialLop中使用行模型方法

Zend framework Zend:在PartialLop中使用行模型方法,zend-framework,loops,model,partial-views,Zend Framework,Loops,Model,Partial Views,Zend talk。我有一个名为“article”的视图,里面有一个partiallop,用于在DB中显示该帖子的所有评论: [..] echo $this->partialLoop('_comments.phtml',$this->comments); 这是_comments.phtml: <li><?= $this->text." ".$this->datetime;?></li> 我想用CommentRow的方法从_comme

Zend talk。我有一个名为“article”的视图,里面有一个partiallop,用于在DB中显示该帖子的所有评论:

[..]
echo $this->partialLoop('_comments.phtml',$this->comments);
这是_comments.phtml:

<li><?= $this->text." ".$this->datetime;?></li>
我想用CommentRow的方法从_comments.phtml中的“authors”DB表中检索作者名称

这是一种新的模式:

class CommentRow extends Zend_Db_Table_Row_Abstract
{
 function getAuthor()
 {
   $author=new Author();
   $q=$author->select('name');
   $q->where('id',$this->authorid);
   $result=$comment->fetchRow($q);
   return $result;  
 }      
}

如何迭代传递到部分循环的注释数组(CommentRow类型的对象),调用getAuthor()方法来显示注释的作者姓名?

谢谢 卢卡


有关更多详细示例,请参见。

局部视图帮助程序希望您传入键/值结构。可以是关联数组或对象。如果传入对象,将考虑任何公共属性,除非该对象具有返回具有所需键和值的关联数组的
toArray
方法。传递给帮助器的键和值将在局部视图中可用。这意味着您的
Zend_Db_行集
不再存在于分部文件中。请阅读下面如何正确传递

引述:

如果您的模型是一个对象,您可能希望将其作为对象传递给部分脚本,而不是将其序列化为变量数组。您可以通过设置相应帮助器的“objectKey”属性来完成此操作:

// Tell partial to pass objects as 'model' variable
  $view->partial()->setObjectKey('model');

// Tell partial to pass objects from partialLoop as 'model' variable
  // in final partial view script:
  $view->partialLoop()->setObjectKey('model');
当将
Zend\u Db\u Table\u行集
传递给
partiallop()
时,此技术特别有用,因为这样您就可以完全访问视图脚本中的行对象,允许您对它们调用方法(例如从父行或从属行检索值)


我想我不明白=S我想在部分循环中使用getAuthor()方法
foreach($this->comments as $comment) {
 echo $comment->getAuthor()->nickname;  // output nickname column of author for example
}
// Tell partial to pass objects as 'model' variable
  $view->partial()->setObjectKey('model');

// Tell partial to pass objects from partialLoop as 'model' variable
  // in final partial view script:
  $view->partialLoop()->setObjectKey('model');