我有ModularPage
類延伸Page
。頁面有一個'縮略圖'Image
。圖像無法通過ORM加載到SS4中
我有一個路線爲ajaxing ModularPage
集合。我用以下方法獲取集合:
$rootPage = DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $id);
$pages = $rootPage->Children();
foreach ($pages as $page) {
var_dump($page->Thumbnail()->Link()); // Null
var_dump($page->ThumbnailID); // '4'
}
ThumbnailID已填充,但縮略圖對象爲空。這是一個錯誤?我需要在SS4中做任何不同的事情嗎?
更新:所以,當我直接從瀏覽器訪問路由的鏈接填充正確。通過Ajax訪問時,Link
爲空。
更新2:圖像鏈接()也可以按照正常方式從同一類訪問,只有在通過ajax調用時纔會被剝離。
只是出於好奇,如果你得到是作爲真正的頁面類的神奇方法thumbnail()然後返回corret實體。例如,get_by_id(「Page」或應該如何使用oit來與命名空間一起使用。沒有4.0版本的內部版本來測試它。 –
過濾Id也使用正確的類名直接獲取對象,如果您訪問數據字段不是主要查詢的一部分,它會爲每次迭代的數據庫請求。Page :: get() - > filter(「parentId」,無論);應該比SiteTree :: get更優化,因爲後者會導致迭代加載每個項目的新數據。也就是說,如果我知道它是如何在至少3.2版本上完成的話)。 –
@FinBoWa我試着調用真正的'Page類,當從端點收到時仍然爲空。在'SiteTree'上使用'Page'的效率很好,我將來會這樣做。 – nickspiel