SilverStripe:最新的博客文章内容块

SilverStripe: Latest Blog Posts Content Block

我正在使用 SheaDawson 的 blocks module,我正在尝试创建一个 "latest blog posts" 内容块。这是我的数据对象:

<?php

class LatestBlogPosts extends Block {
    private static $db = array(
        'ContainInGrid' => 'Boolean',
        'PostCount' => 'Int'
    );

    static $defaults = array(
        "PostCount" => 2
    );

    function getCMSFields() {
        $fields = parent::getCMSFields();
        return $fields;
    }

    public function LatestPosts() {
        $blog = DataObject::get("BlogEntry", "", "Date DESC", "", $this->PostCount);
        return $blog;
    }
}

页面模板上没有显示任何帖子。它说它找不到任何东西。当我检查数据库时,BlogEntry table 是空的,即使我有两个帖子已发布。

我该如何解决这个问题?

在最新版本中SilverStripe blog module the blog entry class is named BlogPostBlogEntry 是 class 曾经的样子,但这在 2015 年的某个时候发生了变化。

如果您使用的是最新版本的博客模块,您的博客条目将被创建为 BlogPosts,并且该数据将在 BlogPost 数据库 table 中。

您的 LatestPosts 函数应如下所示:

public function LatestPosts() {
    return BlogPost::get()->sort('Date', 'DESC')->limit($this->PostCount);
}