如何定义User,Post和Like模型之间的关系

时间:2018-02-01 12:44:14

标签: php laravel-5 vue.js phpmyadmin

我正在构建一个带有laravel的博客应用程序,其功能是使用竖起大拇指图标来表示帖子(只有用户一次)。我已经为User,Post和Like设置了各自的表格模型。 likes表由user_id,post_id和timestamps列组成。我还定义了User和Post模型之间的关系,如下所示: 内部用户模型:

Public function post(){
    return $this->hasMany (App\Post)
} 
Public function like(){
    return $this->hasMany (App\Like)
} 

和Post模型内部;

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

然而,我的挑战在于编写Post和Like模型之间的关系。两个模型之间会存在什么关系?

1 个答案:

答案 0 :(得分:0)

我认为你不需要Like模型,因为你可以在User和Post之间创建直接关系,但是使用不同的表名,例如"喜欢"

用户模型:

public function likes()
{
    return $this->belongsToMany(Post::class, "likes");
}

发布模型:

public function likes()
{
    return $this->belongsToMany(User::class, "likes");
}

有关多对多关系的更多信息:https://laravel.com/docs/5.5/eloquent-relationships#many-to-many