Php 具有关系的Laravel全局范围

Php 具有关系的Laravel全局范围,php,laravel,scope,relationship,Php,Laravel,Scope,Relationship,我想要一个具有全局查询作用域的模型,其作用域是多态的一对一关系 问题是,一切都在运行,我可以创建全局查询范围,但在全局查询范围类中的apply函数中没有关系。我希望使用关系进行查询,而不仅仅是进行连接查询或其他操作 有人知道这是否可能吗 我有以下代码: class Content extends Model { use Environmentabletrait; } trait EnvironmentableTrait { public static function boot

我想要一个具有全局查询作用域的模型,其作用域是多态的一对一关系

问题是,一切都在运行,我可以创建全局查询范围,但在全局查询范围类中的
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());
    });
}

我希望我解释得足够好;)


提前非常感谢

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

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());
    });
}

您好,我们是否也可以在模型中的两个表之间进行内部联接??