Laravel 具有关系的全局范围

Laravel global scope with relations

我想要一个具有全局查询范围的模型,该范围在多态一对一关系范围内。

问题是一切正常,我可以创建全局查询范围,但我没有在全局查询范围 class 中的 apply 函数中获得关系。我想用关系进行查询,而不是仅仅进行连接查询或其他查询。

有人知道这是否可行吗?

我有以下代码:

class Content extends Model {
    use Environmentabletrait;
}

trait EnvironmentableTrait {
    public static function bootEnvironmentableTrait() {
        static::addGlobalScope(new EnvironmentScope);
    }

    public function environment() {
        return $this->morphOne(Environment::class, 'environmentable');
    }
}

class Environment extends Model {
    public function environmentable() {
        return $this->morphTo();
    }
}

class EnvironmentScope implements ScopeInterface {
    public function apply(Builder $builder, Model $model) {
        $builder-> ...
    }
}

希望我已经解释得足够清楚了;)

非常感谢

没关系,我已使用以下代码修复它:

public function apply(Builder $builder, Model $model)
{
    return $builder->whereHas('environment', function ($query) {
        $query->where('environment', app()->environment());
    });
}