Laravel雄辩的模型设置条件belongsTo方法

mur*_*rad 2 laravel eloquent

我有一个模型类ServiceAgentRel。其中agent_id属于用户表。我正在获取具有service_id 3的所有列。

 $agent_data = App\ServiceAgentRel::where(['service_id'=>3])->with('agent')->get();
Run Code Online (Sandbox Code Playgroud)

使用此代码,我可以使用service_id 3获得所有服务,但是如果用户状态(与该agent_id对应的状态)处于非活动状态,则我将需要在用户表上设置一个条件,因此不会获取任何行。我的主要要求是,我必须在关系函数agent()上设置一个条件。还可以从控制器检查吗?在此处输入图片说明

class ServiceAgentRel extends Model {
    public function agent(){
        return $this->belongsTo('App\User', 'agent_id', 'id');
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道可以通过简单的联接来完成此任务,但是我想知道通过雄辩的模型功能是否可以实现。谢谢在这里输入图片说明

Imt*_*bel 5

为此,您需要使用wherehas

$agent_data = App\ServiceAgentRel::where(['service_id'=>3])->with('agent')
->whereHas('agent',function($query) {
 $query->where('status', 'active');
})->get();
Run Code Online (Sandbox Code Playgroud)