在限制关系存在的同时,在Laravel中查询多对多关系

Cod*_*der 6 php laravel eloquent

我在laravel中有以下模型:

TheJobs
- id
- description
- created_at
- deleted_at
- updated_at

TheSeries
- id
- title
- description
- created_at
- deleted_at
- updated_at


TheMovies
- id
- title
- description
- created_at
- deleted_at
- updated_at


mSeriesJobs
- seriesID
- jobID

mMoviesJobs
- movieID
- jobID
Run Code Online (Sandbox Code Playgroud)

以下是以下关系TheJobs:

 public function TheSeries() {
    return $this->belongsToMany('App\Models\TheSeries', 'mSeriesJobs', 'jobID', 'seriesID');
  }

  public function TheMovies() {
    return $this->belongsToMany('App\Models\TheMovies', 'mMoviesJobs', 'jobID', 'movieID');
  }
Run Code Online (Sandbox Code Playgroud)

以下是以下关系TheSeries:

  public function TheJobs() {
    return $this->belongsToMany('App\Models\TheJobs', 'mSeriesJobs', 'seriesID', 'jobID');
  }
Run Code Online (Sandbox Code Playgroud)

电影一样.

我想要 :

  • 得到所有TheSeries工作.
  • 得到所有TheMovies工作.
  • 得到所有的工作TheSeriesTheMovies数据.

澄清问题:

我需要一个简单的Eloquent查询,它将选择TheSeries至少有一个查询TheJobs.

Odi*_*der 0

在工作模型中:

public function series()
{
    return $this->hasMany('App\Series');
}
Run Code Online (Sandbox Code Playgroud)

系列型号:

public function jobs()
{
    return $this->belongsToMany('App\Job');
}
Run Code Online (Sandbox Code Playgroud)

获取所有 TheSeries 职位:

$series = Series::whereHas('jobs')->get();
$seriesJob = $series->jobs;
Run Code Online (Sandbox Code Playgroud)