Eloquent/Laravel-将WHERE子句放在具有链接关系的引用表上

Eloquent/Laravel-将WHERE子句放在具有链接关系的引用表上,laravel,laravel-4,eloquent,Laravel,Laravel 4,Eloquent,我的作业模型中有以下关系函数: public function resourceTypes(){ return $this->belongsToMany('ResourceType', 'job_requests'); } public function resources(){ return $this->belongsToMany('Resource', 'jobs_resources')->withPivot('flow_type', 'resou

我的
作业
模型中有以下关系函数:

public function resourceTypes(){

    return $this->belongsToMany('ResourceType', 'job_requests');

}

public function resources(){

    return $this->belongsToMany('Resource', 'jobs_resources')->withPivot('flow_type', 'resource_type_id');

}
我能够使用以下方法从上述两种关系中获取包含数据的对象:

$job = Job::findorfail($projectId);
$result = $job->with('resources.resourceTypes')->get();
我想在
jobs\u resources
pivot表中放一个where子句,特别是在
flow\u type
列中


我该怎么做?

试试这样的方法:

$job = Job::with('resources' => function($q) {
   $q->with('resourceTypes')->where('flow_type',2);
})->findorfail($projectId);
在上面,您将只获得
flow\u type=2

$result = DB::table('job')
        ->join('job_resources', 'job.id', '=', 'job_resources.job_id')
        ->join('job_requests', 'job_resources.request_id', '=', 'job_requests.id')
        ->where('job_resources.flow_type', '=', CONDITION)
        ->get();

输入的表数据不清楚,但此方法(查询生成器)应该可以工作

我最后使用了以下语句:

Job::with(['resources' => function ($query){
   $query->wherePivot('flow_type', '=', '1' );
}, 'resources.resourceTypes'])->where('id', $projectId)->firstOrFail();