发布模型
class Post extends Model
{
public function comments()
{
return $this->hasMany('App\Comment');
}
public function users()
{
return $this->belongsTo('App\User');
}
public function tags()
{
return $this->belongsToMany('App\Tag');
}
评论模型
class Comment extends Model
{
public function posts()
{
return $this->belongsTo('App\Post');
}
}
标记模型
class Tag extends Model
{
public function posts()
{
return $this->belongsToMany('App\Tag');
}
用户模型
class User extends Model
{
public function posts()
{
return $this->hasMany('App\Post');
}
现在我的问题是我如何能够访问所有属于帖子的评论,用评论的用户名和标签属于该帖子。即使我对标签关系感到困惑,因为它有多对多的关系
谢谢
答案 0 :(得分:1)
标记模型
class Tag extends Model
{
public function posts()
{
return $this->belongsToMany('App\Tag');
// Should this be return $this->belongsToMany('App\Post');
}
现在您的问题的解决方案是“EAGER LOADING”,让我们看看我们如何在您的情况下使用它。
<强> 1。所有评论
$commentsCollection = Comment::all();
// this will give us all comments.
<强> 2。发布评论,用户和标签
$postsCollection = Post::with('comments','users','tags')->get();
// this will give you collection of post with comments, users and tags.
//So here you have all tags that belongs the a particular post.
缺少关系
您缺少用户和评论之间的关系。
修改后的评论模型
class Comment extends Model
{
public function posts()
{
return $this->belongsTo('App\Post');
}
public function user()
{
return $this->belongsTo('App\User');
}
}
已修改的USER模型
class User extends Model
{
public function posts()
{
return $this->hasMany('App\Post');
}
public function comments()
{
return $this->hasMany('App\Comment');
}