Silverstripe 3.1.2 - PaginatedList仅适用于与页面相关的Dataobjects

时间:2013-11-28 15:24:58

标签: php silverstripe

我想创建一个包含不同类别的分页新闻栏目。 问题是,我从所有类别中获取新闻,而不仅仅是所选类别中的新闻。

我的类别是页面,新闻存储在一个具有$ many_many关系的Dataobject中。

那是我的代码。我该怎么做只从所选页面而不是所有

获取“NewsObject”
public function Items() {
    if($this->Paginate) {
        $items = new PaginatedList(NewsObject::get()->filter(array(
            'Visibility' => 'true'
        )), $this->request);
        $items->setPageLength($this->ItemsPerPage);
    } else {
        $items = NewsObject::get()->filter(array(
            'Visibility' => 'true'
        ));
    }
    return $items;
}

提前谢谢

1 个答案:

答案 0 :(得分:1)

回答我自己的问题......

只需使用$ this-> RelationName

// Show and Paginate Items
public function myItems() {
    if($this->Paginate) {
        $items = new PaginatedList($this->News()->filter(array(
            'Visibility' => 'true'
        )), $this->request);
        $items->setPageLength($this->ItemsPerPage);
    } else {
        $items = $this->News()->filter(array(
            'Visibility' => 'true'
        ));
    }
    return $items;
}