Zend framework Zend:在PartialLop中使用行模型方法
Zend talk。我有一个名为“article”的视图,里面有一个partiallop,用于在DB中显示该帖子的所有评论: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
[..]
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');