首页 文章

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

提问于
浏览
1

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

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

    我认为您不需要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

相关问题