Silverstripe 3.1.2 - PaginatedList только для объектов данных, связанных со страницей

Я хочу создать раздел новостей с разбивкой на страницы с разными категориями. проблема в том, что я получаю новости из всех категорий, а не только из выбранной.

Мои категории - это страницы, а новости хранятся в объекте данных, который имеет отношение $many_many.

Это мой Кодекс. Что мне делать, чтобы получить только «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;
}

заранее спасибо


person invictus    schedule 28.11.2013    source источник


Ответы (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;
}
person invictus    schedule 28.11.2013