Laravel-定义多对多关系

时间:2018-12-08 18:04:09

标签: laravel

使用Laravel 5.7创建论坛时遇到问题

我想拥有这三个模型:用户,类别,主题和帖子。问题是我没有如何定义我的线程模型关系之一。

此模型的创建者:

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

...它有一系列答复:

public function replies()
{
    return $this->hasMany('App\Post');
}

...最后是参与者:

public function participants()
{
    return $this->hasManyThrough('App\User', '???')
}

我应该通过其回复来吸引线程参与者,但是它不知道我是否应该像这样放置帖子类:

public function participants()
{
    return $this->hasManyThrough('App\User', 'App\Post')
}

...或者如果是特殊情况,需要考虑一些因素。有帮助吗?

1 个答案:

答案 0 :(得分:1)

由于posts充当数据透视表,因此BelongsToMany关系是此处更好的选择:

public function participants()
{
    return $this->belongsToMany('App\User', 'posts');
}