我正在使用Eloquent Scopes来解耦一个大的mysql查询。
我的一个范围是站点和点之间的连接(站点有很多点)
public function scopeWithSpots($query)
{
return $query->join('spot', 'spot.site_id', '=', 'site.id');
}
然后其他范围(如下所示)在现场表格中添加条件
public function scopeHasActiveSpots($query)
{
return $query->where('spot.is_active', '>', 0);
}
我希望能够在scopeHasActiveSpots()
内检查是否已经建立了连接而不是创建连接,而不是在单独的范围内进行连接,所以我只在需要时才进行连接。
有意义吗?有没有办法用Eloquent做到这一点?