将Laravel集合添加到另一个集合中

tro*_*nic 9 php arrays laravel laravel-5

我试图在Laravel 5.3中添加另一个Eloquent系列的Eloquent系列.

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

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

$entries->merge($posts);
Run Code Online (Sandbox Code Playgroud)

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

收集合并吃掉一些行

有任何想法吗?

Bjö*_*örn 19

我相信你可以像这样合并两个雄辩的集合:

$mergedCollection = $entries->toBase()->merge($posts);
Run Code Online (Sandbox Code Playgroud)

在此之后,它是一个包含所有条目的集合.


Jas*_*son 19

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

$mergedCollection = $entries->concat($posts);
Run Code Online (Sandbox Code Playgroud)

  • 这是正确的答案,因为它确实是附加的。它确实会破坏键,但这应该是重点,否则合并就是选择的工具。 (4认同)

Z-X*_*-KH 5

这是链接:laravel7.X

$collection = collect(['Desk', 'Chair']);

$merged = $collection->merge(['Bookcase', 'Door']);

$merged->all();
Run Code Online (Sandbox Code Playgroud)