在我看来,我有一个包含 partialLoop 的部分。
但是当我运行页面时,我收到以下错误消息:
Call to a member function countComments() on a non-object in ...'_loop.phtml'
这就是我从我的观点中调用我的部分的方式:
echo $this->partial('_post.phtml',$this->post);
其中 $this->post 是一个数据库检索行
这是 我的部分 内容:
MY simplified Partial!
echo $post->countComments();//the count number is correctly output..
echo $this->partialLoop('_loop.phtml',$this->object);
这是 我的 partialLoop 的 内容:
echo $this->object->countComments();//no output!
在 bootstrap 中,我设置了:
$view->partial()->setObjectKey('object');
$view->partialLoop()->setObjectKey('object');
这是从局部调用partialLoops 的正确方法吗??
P.s. 我var_dumped $this->object 在我的part 里面,它是一个PostRow OBJECT.I var dumped $this->object 到_loop.phtml 并且我有5 个NULLS(代表我的id、title、text、author、datetime 字段)邮政)
谢谢
卢卡
最佳答案
我认为原因是当您将 $this->post
传递给像这样的部分 View 助手时:
$this->partial('_post.phtml',$this->post);
局部 View 助手将执行其
toArray()
方法。因此,您的 $this->object
是一个数组,并且您正在将一个数组传递给您的 partialLoop。因此,在您的 partialLoop 中,您试图在表示行发布对象的数组上执行 countComments()
,而不是实际的行对象。为了避免这种情况,我建议使用数组表示法将变量传递给 partial 和 partialLoop View 助手,例如:
$this->partial('_post.phtml',array('post' => $this->post));
希望这可以帮助。
关于php - Zend 将变量传递给局部 View 内的 PartialLoop,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6054995/