Wordpress博客归档在CakePHP中看起来像

Wordpress博客归档在CakePHP中看起来像,cakephp,cakephp-2.0,Cakephp,Cakephp 2.0,我正在使用cakePHP构建和应用程序,并试图实现Wordpress博客归档之类的功能 假设我的数据库中有一个表: 帖子 身份证件 标题 身体 创建 我希望输出像这样: //Inside Controller/PostsController.php public function somePostAction() { $posts = new Array(); $currentYear = date("Y"); for($year = 2012 ; $year<=$curre

我正在使用cakePHP构建和应用程序,并试图实现Wordpress博客归档之类的功能

假设我的数据库中有一个表:

帖子 身份证件 标题 身体 创建 我希望输出像这样:

//Inside Controller/PostsController.php

public function somePostAction() {

$posts = new Array();
$currentYear = date("Y");

    for($year = 2012 ; $year<=$currentYear ; $year++) {
        $posts[$year] = $this->Post->getPostsByYear($year);
    }

$this->set('posts' , $posts);

}
2013 职位1 职位2 等 2012 邮政4 邮政5 等等 我自己搜索并尝试过,但不幸的是没有成功
首先,您可以在您的帖子模型中创建一个方法,用于检索某一特定年份的所有帖子:

//Inside Model/Post.php

public function getPostsByYear($year) {

$date1 = new DateTime($year.'-01-01 00:00:00');
$date2 = new DateTime($year.'-12-31 23:59:59');

$posts = $this->find('all' , array(
    'conditions' => array(
        'Post.created BETWEEN ? AND ?' => array($date1,$date2)
     )
    ));

    return $posts
}
然后,在PostsController中的所需操作中,您将从任何所需的初始年份进行迭代在我的情况下,我选择2012年到当前年份,多次调用GetPostsByEar方法,如下所示:

//Inside Controller/PostsController.php

public function somePostAction() {

$posts = new Array();
$currentYear = date("Y");

    for($year = 2012 ; $year<=$currentYear ; $year++) {
        $posts[$year] = $this->Post->getPostsByYear($year);
    }

$this->set('posts' , $posts);

}
例如,通过这种方式,您2012年的所有帖子都将位于$posts[2012]数组中。如果您想研究它的结构,只需编写debug$posts


提醒一下,上面的代码未经测试。如果有任何问题,请告诉我。

实际上有点过时,大多数代码都应该重新分解到模型中,但这正是这样做的


那么,实际的问题是什么?检索数据?准备视图中的数据?您好,ndm实际的问题是检索数据:Bruno谢谢您的回答。我对你的代码做了一点小改动,然后一切都很好。非常感谢你。更改:$date1=$year'-01-01 00:00:00'$date2=年。'-12-31 23:59:59';我无法按照我在问题中所说的方式显示信息:S我正在使用debugkit,因此我可以查看数组结构,但无法按照我想要的方式显示信息。例:h1>年p>后标题显示信息时您到底有什么问题?您需要的信息是否丢失,或者您不知道如何检索阵列的特定部分?@speak我刚刚找到了一个解决方案。非常感谢您的关注。我是cakePHP新手,如何使用ArchiveComponent?