所以我有兩個模型like和follow模型,我想創建一個活動頁面,用戶可以在其中相應地看到他的最新活動。我考慮過使用 Laravel 的merge功能合并視圖中的兩個模型,但我不知道如何指示用戶是否喜歡該帖子或關注博客。$like= Like::where('user_id', '=', auth()->user()->id)->orderBy('created_at','desc')->get();$follow = Follow::where('user_id', '=', auth()->user()->id)->orderBy('created_at','desc')->get();$all = $like->merge($follow);如果我在視圖中使用 if 語句,它將對視圖中的不同數據進行分組,而不是將它們組合在一起以形成活動時間線。如果你能幫忙謝謝
1 回答

茅侃侃
TA貢獻1842條經驗 獲得超22個贊
您可以將這些集合合并在一起,并按照您希望的方式對它們進行排序/排序。我強烈建議不要將一個 Eloquent Collection 合并到另一個不同類型的 Eloquent Collection 中。與基礎集合類型 ( Illuminate\Support\Collection
) 不同,Eloquent 集合 ( Illuminate\Database\Eloquent\Collection
) 從它擴展而來,它考慮了模型的鍵。因此,如果您有 2 個集合,并且任何模型都具有相同的密鑰,它們將被覆蓋。您想要將這些集合之一轉換為基本集合,然后合并到另一個集合中:
$merged = $like->toBase()->merge($follow); $sorted = $merged->sortByDesc('created_at');
或者甚至將它們都轉換為基本集合并合并:
$merged = $like->toBase()->merge($follow->toBase());
- 1 回答
- 0 關注
- 113 瀏覽
添加回答
舉報
0/150
提交
取消