首页 文章

如何在Laravel中定义雄辩关系

提问于
浏览
0

我有两个模型 - 下表的 User 模型和 Movie 模型

user 表包含以下列

  • id

  • 年龄

movie 表包含以下列

  • id

  • min_age

如何在 User 模型上定义关系,以便对于每个用户,我能够获得遵循约束的所有电影:

Movie.min_age <= User.age

我知道我可以查询电影模型,并获得min_age小于或等于用户年龄的所有电影 . 我的问题是如何通过使用 hasMany()belongsToMany() 等函数在 User 模型中定义 Eloquent relationship 来实现这一目标?

1 回答

  • 1

    因此用户可以观看很多电影 . 同时,可以同时从许多用户观看电影 .

    在User.php上

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

    在Movie.php上

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

    为了通过关系获得你想要的东西,你可以做这样的事情;

    我们假设你也有一个auth系统 .

    $user = Auth::user();
    
    $getMovies = $user->movies()->where('min_age','<=',$user->age)->get();
    

相关问题