代码之家  ›  专栏  ›  技术社区  ›  Thomas Clayson

hasManyThrough是否忽略中间表上的全局作用域?

  •  1
  • Thomas Clayson  · 技术社区  · 6 年前

    我有三张桌子:公司,游戏和测试。

    • 公司有很多游戏
    • 游戏有很多考验

    这个 Game

    public function apply(Builder $builder, Model $model)
    {
        $builder->where('type', 'live');
    }
    

    游戏 模型将只返回游戏类型设置为“live”的结果。

    return $this->hasManyThrough('App\Test', 'App\Games') 在我的 Company 为特定公司建立模型以获取所有测试。

    但是,这将返回所有游戏的结果,而不管它们的类型如何。

    所以我想知道 hasManyThrough 绕过我在 模特?

    如果是的话,有什么办法可以解决吗?我想确保我所做的所有查询都过滤掉了所有没有设置为“live”的游戏。

    干杯

    1 回复  |  直到 6 年前
        1
  •  0
  •   Mahdi Younesi    6 年前

    ->withoutGlobalScopes()

    class User extends Model
    {
       public function games()
       {
          return $this->hasManyThrough(Test::class, Games::class)
                 ->withoutGlobalScopes();
       }
    }
    
    推荐文章