我想要一个具有全局查询范围的模型,该模型的范围是多态的一对一关系。
问题是一切正常,我可以创建全局查询范围,但我没有在全局查询范围类的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-> ...
}
}
并且
我希望我已经解释得很好;)
非常感谢提前
答案 0 :(得分:2)
没关系,我已使用以下代码修复它:
public function apply(Builder $builder, Model $model)
{
return $builder->whereHas('environment', function ($query) {
$query->where('environment', app()->environment());
});
}