---
title: 'Собрать коллекцию дочерних моделей в Laravel'
url: 'https://graker.ru/news/2018/10/08/laravel-relationship-collection'
language: ru
type: post
author: 'Роман Грачев'
published: '2018-10-08T16:35:00+03:00'
updated: '2018-10-08T16:38:22+03:00'
categories:
  - Laravel
  - Программирование
---

# Собрать коллекцию дочерних моделей в Laravel

Допустим, у нас есть модель Post и у неё есть теги Tag, множественная связь. И мы загрузили несколько моделей постов с тегами, например вот так:

```
$posts = Post::with('tags')->all();
```

В `$posts` находится, конечно, [коллекция](https://laravel.com/docs/5.7/collections). Теперь, если нам нужно собрать со всех постов теги в одну коллекцию, причем чтобы не было дублей, можно это сделать вот так:

```
$posts = Post::with('tags')->all();
$tags = $posts->reduce(function (Collection $collection, Post $post) {
    $collection = $collection->merge($post->tags);
}, collect());
```

Feel da power of Laravel collections!
