为了账号安全,请及时绑定邮箱和手机立即绑定

根据视图的降序合并模型 - 创建一个活动页面

根据视图的降序合并模型 - 创建一个活动页面

PHP
冉冉说 2023-07-01 15:27:08
所以我有两个模型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条经验 获得超21个赞

您可以将这些集合合并在一起,并按照您希望的方式对它们进行排序/排序。我强烈建议不要将一个 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());


查看完整回答
反对 回复 2023-07-01
  • 1 回答
  • 0 关注
  • 60 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信