2015-08-13 48 views
5

我試圖返回一個單獨的GroupedList,其中包含來自兩個頁面和dataobjects的信息。有沒有簡單的方法將兩個列表合併在一起?銀條紋合併分組列表

public function getGroupedContent() 
{ 
    $dataobjects = GroupedList::create(FileNetObject::get()); 
    $pages = GroupedList::create($this->Children()); 

    $result = ??; 


    return $result; 
} 

ArrayList合併失敗一樣標準array_merge - 我建議最好從查詢把它變成一個單一的GroupedList之前合併在一起的結果?

+0

做FileNetObject和$ this-> Children()有什麼共同點嗎?兩個都是頁面?或者你可以通過一些共同的領域或獲得者來分組嗎? – wmk

+0

@wmk都包含我正在使用的標題字段進行分組。 –

回答

1

不知道更多關於你的情況,要做到這一點最簡單的方法是:

return array_merge($dataobjects->toArray(), $pages->toArray()); 

要顯示在上面的模板,你當然會需要包裝,在另一個ArrayList中。

更新:如果你想分組列表(這當然是你爲什麼使用GroupedList的原因),你需要在合併數組之前做到這一點。更像是:

return array_merge($dataobjects->GroupBy('Author')->toArray(), $page->GroupBy('Author')->toArray()); 
+0

如上所述,然後將array_merge的結果放入另一個ArrayList中,我是否需要將模板修改爲除了循環分組列表的子項之外的任何內容? (目前不渲染任何東西) –

+0

對不起,我剛剛注意到你的評論。沒有看到你的模板,很難說。如果您的模板中仍有$ GroupBy,您可能需要刪除該位。否則,如果你發佈你的代碼,我可以嘗試更進一步。 –