2016-07-08 27 views
2

私はSheaDawsonのblocks moduleを使用しています。私は "最新のブログ投稿"コンテンツブロックを作成しようとしています。ここに私のDataObjectがあります:SilverStripe:最新ブログ投稿コンテンツブロック

<?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; 
    } 
} 

ページテンプレートには投稿が表示されていません。それは何も見つけることができないと言います。データベースをチェックすると、公開されている2つの投稿があるにもかかわらず、BlogEntryテーブルは空です。

この問題を解決するにはどうすればよいですか?

答えて

4

SilverStripe blog moduleの最新バージョンでは、ブログエントリクラスの名前はBlogPostです。 BlogEntryは、クラスがために使用するものですが、あなたのブログのエントリがBlogPost Sとして作成されたデータは、BlogPostデータベーステーブルになることをされるブログのモジュールの最新バージョンを使用している場合、これは2015年

にいつか変更しました。

あなたLatestPosts機能は次のようになります。

public function LatestPosts() { 
    return BlogPost::get()->sort('Date', 'DESC')->limit($this->PostCount); 
} 
関連する問題