我在使用CakePHP(2.2.x)構建博客,博客的一部分是側邊欄。像最近的帖子,檔案和meta的wordpress一個側欄。我不確定我是否應該爲邊欄使用元素或助手。CakePHP:元素或助手
目前我正在使用一個元素。一些代碼片段:
控制器/ PostsController.php
public function index() {
$this->set('posts', $this->Post->find('all'));
}
public function show($id) {
$this->set('posts', $this->Post->find('all'));
$this->set('post', $this->Post->findById($id));
}
查看/職位/ index.ctp
<div class="span8">
<?php foreach ($posts as $post) { ... } ?>
</div>
<?php echo $this->element('sidebar', array('posts' => $posts)); ?>
查看/職位/ show.ctp
<div class="post">
... render the post using $post ...
</div>
<?php echo $this->element('sidebar', array('posts' => $posts)); ?>
查看/元/ sidebar.ctp
<?php foreach ($posts as $post) { ... render the recent posts ... } ?>
正如你所看到的,show.ctp
和index.ctp
包括sidebar.ctp
元素,都需要$posts
變量。因此,我需要在index
和show
操作中撥打$this->Post->find('all')
。 我想打電話$this->Post->find('all')
只有一次我想知道是否使用助手可以,幫助。
是的,這很合適。謝謝。 –
請注意,requestAction速度很慢。這是一個完整的請求,至少在v2.x中是這樣。 – geoidesic