【问题标题】:How to define Eloquent relationship in Laravel如何在 Laravel 中定义 Eloquent 关系
【发布时间】:2018-01-21 16:36:07
【问题描述】:

我有两个模型 - User 模型和 Movie 模型用于以下表格

user 表包含以下列

  • 身份证
  • 年龄

电影表有以下列

  • 身份证
  • min_age

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

Movie.min_age

我知道我可以查询电影模型并获取所有 min_age 小于或等于用户年龄的电影。我的问题是,如何通过使用 hasMany() 等函数在 User 模型中定义 Eloquent 关系 来实现这一点属于ToMany()

【问题讨论】:

  • 您是否定义了用户和电影之间的belongsToMany 关系?
  • @RossWilson 不,我没有。
  • 使用query scopes

标签: php mysql laravel


【解决方案1】:

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

在 User.php 上

public function movies(){

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

电影.php

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

要通过关系得到你正在寻找的东西,你可以这样做;

假设您也设置了身份验证系统。

$user = Auth::user();

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

【讨论】:

  • 谢谢。我的印象是关系只通过主键和外键起作用,似乎我错了。
猜你喜欢
  • 1970-01-01
  • 2014-05-08
  • 2017-01-19
  • 2017-04-02
  • 2023-04-01
  • 2020-12-14
  • 1970-01-01
  • 1970-01-01
  • 2018-08-26
相关资源
最近更新 更多