Laravel Создать коллекцию из коллекции - PullRequest
0 голосов
/ 22 марта 2020

У меня есть модель Post, которая имеет отношение «многие ко многим» с моделью Topi c. В моем контроллере я получил коллекцию сообщений для конкретного пользователя. Теперь я пытаюсь создать коллекцию всех тем, связанных с этой коллекцией сообщений.

Моя коллекция сообщений определяется как ...

// Get all posts created by this user
$posts = Post::where('user_id', Auth::user()->id)->get()->sortByDesc('created_at');

Если я делаю $ post-> topi c -> topic_name Я получаю имя topi c для этой записи c, но мне нужна коллекция тем. Должно быть 3. Я попробовал следующее без удачи ...

foreach ($posts as $post)
{
   $topics = $post->topic;
}

Коллекция $ themes просто останавливается как первый топи c и не включает остальные. Чего мне не хватает?

Спасибо!

1 Ответ

0 голосов
/ 22 марта 2020

Вы сказали, что это отношение многие ко многим, тогда в вашей модели Post вы должны определить свое отношение следующим образом:

public function topics()
{
    return $this->belongsToMany('App\Topic');
}

Затем в вашем запросе вместо темы topi c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...