将 Laravel 集合附加到另一个集合

新手上路,请多包涵

我正在尝试在 Laravel 5.3 中将一个 Eloquent 集合附加到另一个 Eloquent 集合。

这是我到目前为止所做的:

 $entries = Entry::all();
$posts   = Post::all();

$entries->merge($posts);

我尝试使用 merge() 如上面的代码所示,但似乎我遇到了这种问题(因为其中一些具有相同的 id 具有相同的值):

集合合并吃掉一些行

有任何想法吗?

原文由 user5523349 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 353
2 个回答

对于 < 5.4 的版本,您可以通过使用 toBase 重置键来合并两个雄辩的集合,如下所示:

 $mergedCollection = $entries->toBase()->merge($posts);

对于 >= 5.4 的版本,您可以按照 Jason 的建议使用 concat

原文由 Björn 发布,翻译遵循 CC BY-SA 4.0 许可协议

我相信您可能正在寻找 concat() 。这会将一个容器附加到另一个容器的末尾,而不管其中任何一个的键。

 $mergedCollection = $entries->concat($posts);

原文由 Jason 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏