我有3个模型,Customer,Service和ServiceElement
我的模范客户范围:
public function scopeServicesExternal($query, $customer_id, $service_id){
return $query->where('customer_id', $customer_id)->where('service_id', $service_id);
}
这个范围为我提供了服务的所有结果,这没关系。但是有可能扩展它以获得仅在模型ServiceElement中字段代理不为空的元素吗?
答案 0 :(得分:2)
如果服务器具有为service元素定义的关系,则可以执行以下操作:
->whereHas('serviceElement', function($query) {
return $query->where('field_agent', '!=', '');
});
仅返回具有serviceElement
记录且field_agent
列不为空的模型。
使用您在模型文件中定义关系时替换serviceElement
。
答案 1 :(得分:0)
如果您使用Eloquent关系,则不需要传递customer_id和service_id作为参数。