Слияние двух типов страниц в SilverStripe

$page1 = PageType1::get();
$page2 = PageType2::get();

Есть ли способ получить последние 5 сообщений из комбинации двух типов страниц. Принимается любая помощь.


person Abhishek Singh    schedule 14.07.2015    source источник


Ответы (1)


Предполагая, что PageType1 и PageType2 являются потомками класса Page, вы можете:

$myPages = Page::get()->filter(['ClassName' => ['PageType1', 'PageType2']]);

или любой другой родительский класс обоих типов страниц.

Вы можете сортировать по дате создания (которая сохраняется в таблице SiteTree) и ограничивать, например

$sortedAndLimited = $myPages->sort('Created')->limit(5);

Оборотная сторона: вы не можете легко искать, фильтровать или сортировать отдельные поля, которые не используются совместно с родительским классом Page, для этого вам нужно выполнить соединения вручную.

person wmk    schedule 14.07.2015