運がなくてもCakephp2.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
(関数でデバッグすると、見つかった投稿を含む配列が返されます)。誰かが私が間違っていることを教えてもらえますか?