web-dev-qa-db-ja.com

Laravelコレクションを別のコレクションに追加

Laravel 5.3。のEloquentコレクションに別のEloquentコレクションを追加しようとしています。

これは私がこれまでにやったことです:

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

$entries->merge($posts);
_

上記のコードに示されているようにmerge()を使用しようとしましたが、この種の問題にこだわっているようです(同じ値のidが同じものがあるため) :

いくつかの行を消費するコレクションのマージ

何か案は?

9
tronic

このように2つの雄弁なコレクションをマージできると思います。

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

この後、すべてのエントリを含む コレクション です。

19
Björn

concat()を探しているかもしれません。これにより、いずれかのキーに関係なく、1つのコンテナが別のコンテナの最後に追加されます。

$entries->concat($posts);
2
Jason

Merge()メソッドは配列を受け取るため、次のようなことをする必要があります

$entries->merge($posts->toArray());

Laravelコレクション:merge()メソッド

0
Jeff