php - Zend 将变量传递给局部 View 中的 PartialLoop

标签 php zend-framework partial-views

在我看来,我有一个包含 partialLoop 的部分。 但是当我运行该页面时,出现以下错误消息:

Call to a member function countComments() on a non-object in ...'_loop.phtml'

这就是我在我的 View 中调用我的部分的方式:

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');

这是从 partials 中调用 partialLoops 的正确方法吗??

P.s. 我将 $this->object var_dumped inside partial 并且它是一个 PostRow OBJECT。我将 $this->object var dumped 到 _loop.phtml 并且我有 5 个 NULLS(代表 id,我帖子的标题、文本、作者、日期时间字段)

谢谢

卢卡

最佳答案

我认为原因是当您像这样将 $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/

相关文章:

javascript - 如何可视化 MySQL 嵌套集?

php - 根据另一个表或字段中的数组中的记录保存 id

javascript - 如何在magento的成功页面中动态集成JS代码

javascript - AJAX 在 ASP.NET MVC 中加载局部 View - 脚本运行不止一次

jquery - 动态部分 View + jquery 表单劫持 + 客户端验证 = 不起作用

php - "Load data local infile"命令不允许

php - 只需从 PHP 中的字符串获取图像 URL

php - schemadb + ZendFramework 集成,用于在开发时快速增长数据库

http - 在 ZF2 Controller 中获取请求授权 header

jquery - MVC Ajax 部分 View - 根据返回的 View 加载到不同的 div