I want to make a user wall where all of his post will be loaded with those who has given comment under it. So I have defined following relations in my User model.
public function post()
{
return $this->hasMany(Post::class);
}
public function comment()
{
return $this->hasMany(Comment::class);
}
My Post model:
public function user()
{
return $this->belongsTo(User::class);
}
public function post_comment()
{
return $this->hasMany(Comment::class);
}
My Comment model:
public function user()
{
return $this->belongsTo(User::class);
}
public function post()
{
return $this->belongsTo(Post::class);
}
In my Controller:
public function wall($id)
{
$all_post = Post::where('user_id',$id)->get();
return view('client.wall',['all_post'=> $all_post]);
}
in my Blade file:
@foreach($all_post as $post)
Post Title: {{ $post->title }} //gets the title properly
@foreach($post->post_comment as $comment) //this foreach loop throwing erros
Name: {{ $comment->user->name }}
Comment: {{ $comment->description }}
@endforeach
@endforeach
Probably my logic is wrong to load the comments from database. Because I am getting errors.