如何在Laravel中定义雄辩关系

时间:2017-08-13 19:54:59

标签: php mysql laravel

我有两个模型 - 用户模型和下列表格的电影模型

用户表格包含以下列

  • ID
  • 年龄

电影表格包含以下列

  • ID
  • MIN_AGE

如何在用户模型上定义关系,以便每个用户都可以获得遵循约束条件的所有电影:

Movie.min_age< = User.age

我知道我可以查询电影模型并获取min_age小于或等于用户年龄的所有电影。我的问题是如何通过使用 hasMany()等功能在用户模型中定义雄辩关系来实现这一目标。 belongsToMany()

1 个答案:

答案 0 :(得分:1)

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

On User.php

public function movies(){

   return $this->hasMany(Movie::class);
 }

On Movie.php

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

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

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

$user = Auth::user();

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