Как вывести значение из двух объединенных таблиц?

Есть две таблицы, user и post. мне надо вывести user с записями из post которые принадлежат ему.

User table
id: 1
name: Alex

id: 2
name: Ilya

Post table
id: 1
title: Good News
user_id: 1

id: 2
title: Very good news
user_id: 2

id: 3
title: Not bad good news
user_id: 2

Нужен такой езультат:
Alex
Good News

Ilya
Very good news
Not bad good news

Что у меня получчается на данный момент:
Почему-то вместо заголовка выходит объект
Alex
[{"id":1,"title":"Good News.","user_id":1,"}]

Ilya
[{"id":2,"title":"Very good news.","user_id":2,"}]
[{"id":3,"title":"Not bad good news.","user_id":2,"}]

Post model:

public function user()
{
    return $this->belongsTo(User::class);
}

User model:

public function posts()
{
    return $this->hasMany(Post::class, 'user_id', 'id');
}

Controller

$users = User::with('posts')->get();
    $posts = Post::with('user')->get();
    return view('index', compact('users', 'posts'));

View:

@foreach ($users as $user)
<h3>{{ $user->name}}</h3>
    @foreach ($posts as $post)
        <p>{{ $post->title }}</p>
    @endforeach
@endforeach

Ответы (1 шт):

Автор решения: E_K

Похоже эти данные относятся к модели User. И я очень сомневаюсь, что их вам отдает $post->title.

Alex

[{"id":1,"title":"Good News.","user_id":1,"}]

Ilya

[{"id":2,"title":"Very good news.","user_id":2,"}]

[{"id":3,"title":"Not bad good news.","user_id":2,"}]

Если вы хотите получить пользователя со связанными с ним постами достаточно одного запроса.

Controller

$users = User::with('posts')->get();
return view('index', compact('users'));

View

@foreach ($users as $user)
<h3>{{ $user->name}}</h3>
    @foreach ($user->posts as $post)
        <p>{{ $post->title }}</p>
    @endforeach
@endforeach
→ Ссылка