我有3张桌子:公司,游戏和测试。
Game
模型具有全局范围,我可以确认它正在起作用:
public function apply(Builder $builder, Model $model)
{
$builder->where('type', 'live');
}
我使用Game
模型进行的任何直接查询都只会返回游戏类型设置为“实时”的结果。
我在return $this->hasManyThrough('App\Test', 'App\Games')
模型中使用Company
来获取特定公司的所有测试。
但是,无论类型如何,这都会返回所有游戏的结果。
所以我想知道是否使用hasManyThrough
绕过了我在Game
模型中设置的全局范围?
如果是这样,有什么解决办法吗?我想确保我正在做的所有查询都在过滤掉所有未设置为“实时”的游戏。
欢呼
答案 0 :(得分:0)
您需要在关系的定义中添加->withoutGlobalScopes()
class User extends Model
{
public function games()
{
return $this->hasManyThrough(Test::class, Games::class)
->withoutGlobalScopes();
}
}