2013-11-28 21 views
0
相關的Dataobjects

我想創建一個帶有不同類別的分頁新聞部分。 問題是,我從所有類別中獲取新聞,而不是僅從所選類別中獲取新聞。Silverstripe 3.1.2 - PaginatedList僅用於與第

我的類別是頁面,新聞存儲在一個具有$ 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

回答我的問題...

只需使用$這 - >關係名稱

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