我想檢索所有類別及其相應文章(限制10)的列表,並將其顯示在我的文章的索引操作/視圖中控制器。我已經設置了文章和類別控制器。CakePHP如何檢索所有類別及其各自的文章和顯示在文章中::索引
我想在頁面底部有類似於CNN.com的東西。
什麼是最好的方法? 你能提供一些代碼示例嗎?
非常感謝,
安德烈S.
我想檢索所有類別及其相應文章(限制10)的列表,並將其顯示在我的文章的索引操作/視圖中控制器。我已經設置了文章和類別控制器。CakePHP如何檢索所有類別及其各自的文章和顯示在文章中::索引
我想在頁面底部有類似於CNN.com的東西。
什麼是最好的方法? 你能提供一些代碼示例嗎?
非常感謝,
安德烈S.
這就是我能夠解決這個問題的方法。如果有人有最好的方法,請告訴我。謝謝!
這是我的文章觀Index.ctp文件
<div id="bottom_section" class="article_bottom_section">
<?php
foreach ($categories as $category){
?>
<div>
<div>
<?php echo $category['Category']['title'];?>
</div>
<div>
<?php
echo $this->element(
'category_relatedarticles',
array(
'categoryID' => $category['Category']['id']
)
);
?>
</div>
</div>
<?php
}
?>
</div>
然後在我的文章我的控制器index動作
$categories = $this->Article->Category->find(
'all',
array(
'fields' => array(
'Category.id',
'Category.title'
),
'order' => 'Category.id DESC',
'recursive' => 1
)
);
$this->set('categories');
這是我使用來獲取相應的文章元素
<div>
<?php
$RelatedArticles = $this->requestAction('/categories/getRelatedArticles/'.$categoryID);
?>
<ul>
<?php
foreach($RelatedArticles as $RelatedArticle){
?>
<li>
<?php echo $RelatedArticle['Article']['title']; ?>
</li>
<?php
}
?>
</ul>
</div>
而這是getRelatedArticles函數i ñ我的分類控制器
function getRelatedArticles($id = null){
$RelatedArticles = $this->Category->Article->find(
'all',
array(
'fields' => array(
'Article.title',
'Article.id'
),
'conditions' => array(
'Article.category_id =' => $id,
),
'limit' => 6,
'order' => 'Article.id DESC'
)
);
if (!empty($this->params['requested'])) {
return $RelatedArticles;
}else{
$this->set('RelatedArticles');
}
}
和它的作品相當不錯的......如果有人知道一個更好和更快的方式,請讓我知道..感謝
你可以使用一個(緩存)元素和請求的行動;因爲這些類別不太可能改變。
// views/elements/categories.ctp
$categories= $this->requestAction('/categories/get_categories');
echo '<ul>';
foreach($categories as $category) {
echo '<li>' . $category['Category']['name'] . '</li>';
}
echo '</ul>';
// in your layout
echo $this->element('categories', array('cache' => '+1 hour'));
上面的例子需要調整;但你應該明白這個主意。您可以使用請求操作訪問您喜歡的任何數據;但它可能會導致性能下降 - 因此緩存是明智的。
查看the docs瞭解更多信息。
嗯,我真正想要做的是檢索類別1其中10篇最新文章,2篇最新文章10篇,等等。你的答案只是檢索類別,我已經能夠做到。我只是想要最好的辦法。看到我對這個問題的回答......我不確定這是否是最好的方法,但這就是我的做法。 – 2011-06-12 12:56:33