如何在laravel 5.4中获取评论名称

时间:2018-07-16 09:19:22

标签: laravel eloquent comments posts

我遵循约定以紧凑的方法查看所需的数据以进行查看 架构用户表

id,name,email,password

模式发布表

id,user_id,title,body,photo

架构注释表

id,post_id,user_id,comments,photo

在用户模型中

public function post()
  {
      return $this->hasMany(post::class);
  }

 public function comments()
   {
     return $this->hasMany(comment::class);
   }

在帖子模型中

Public function User()
{
  return $this->belongsTo('App\User');
}

public function comments()
{
    return $this->hasMany(comment::class);

}

在评论模型中

public function posts()
{
 return $this->belongsTo('App\post');
}

在控制器中

$list = User::with('post','comments')->paginate(1);

  return view('dynamic',compact('list'));

可见

@foreach($lists->comments as $comments)
{{$comments->name}}
@endforeach

帖子根据用户显示成功

以及根据帖子成功显示的评论

但未显示评论的名字//请帮助

如何建立关系以获取带有注释用户名的注释

请先帮助谢谢

2 个答案:

答案 0 :(得分:0)

在您的视图中更改代码如下:

@foreach($lists->comments as $comments)
    {{$comments->User->name}}
@endforeach

答案 1 :(得分:0)

您必须按如下所示更改代码

@foreach($lists->comments as $comments)
    {{$comments->posts->user->name}}
@endforeach

您需要按如下所示向评论模型添加关系

  Public function User()
{
  return $this->belongsTo('App\User');
}

之后,您需要按以下方式更改代码

@foreach($lists->comments as $comments)
    {{$comments->user->name}}
@endforeach