所以我有很多不同的模型類型。評論,帖子,評論等。我想將它們加入一個集成的Feed。是否有CakePHP樣式合併所有這些數據以供顯示,按時間戳排序?CakePHP哲學問題
有很多雜亂的方式來做到這一點,但我不知道是否有一些標準的方式,我失蹤了。謝謝!
所以我有很多不同的模型類型。評論,帖子,評論等。我想將它們加入一個集成的Feed。是否有CakePHP樣式合併所有這些數據以供顯示,按時間戳排序?CakePHP哲學問題
有很多雜亂的方式來做到這一點,但我不知道是否有一些標準的方式,我失蹤了。謝謝!
由於這些項目來自不同的表格,因此在任何情況下很難從數據庫中檢索它們。根據如何組織你的數據是,有件事非凌亂,因爲這應該這樣做:
$posts = $this->Post->find(...);
$reviews = $this->Review->find(...);
$comments = $this->Comment->find(...);
$feed = array_merge($posts, $reviews, $comments);
usort($feed, function ($a, $b) {
$a = current($a);
$b = current($b);
return $strtotime($a['created']) - strtotime($b['created']);
});
哲學?大聲笑
不,我不認爲有一個。儘管你可以在app_model中編寫afterSave()。檢查您正在查找的數據,如果找到,請將其放入緩存。它可能會很混亂,但至少它在一個地方,並不會影響性能。
肯定有沒有辦法自動將數據合併,但不是射擊單獨的查詢每個關係,你可以抓住它全部使用CakePHP的Containable行爲。