我正在尝试在 Cakephp 2.0 中使用 Elements,但没有运气。我有一个名为 Post 的模型、一个名为 Posts 的控制器和各种视图。在布局中,我想包括(对于每个页面/视图)一个带有最新消息的框(比如 2)。
所以我创建了元素dok-posts.ctp
<?php $posts = $this->requestAction('posts/recentnews'); ?>
<?php foreach($posts as $post): ?>
<div class="Post">
....
在我的PostsController 中,我添加了函数recentnews()
public function recentnews(){
$posts = $this->Post->find('all',array('order' => 'Post.created DESC','limit' => 2));
if ($this->request->is('requested')) {
return $posts;
} else {
$this->set('posts', $posts);
}
}
在我的布局中,default.ctp我称我的元素
<?php echo $this->element('dok-posts'); ?>
问题是我收到这条消息
Invalid argument supplied for foreach() [APP\View\Elements\dok-posts.ctp, line 9]
在dok-posts.php中调试,就在$this->requestAction
,给我一个空行。该recentnews
函数似乎没有返回任何内容(在函数中进行调试会返回一个包含找到的帖子的数组)。谁能告诉我我做错了什么?