当前位置:  开发笔记 > 编程语言 > 正文

禁用渴望的关系

如何解决《禁用渴望的关系》经验,为你挑选了2个好方法。

在我的项目中,我有许多Eloquent模型,它们在类中配置了如下所示的热切关系:

protected $with = [ 'countries', 'roles' ];

但有时我只需要旧的普通模型而没有任何关系.我能以某种方式做到:

Model::noRelations()->all()

真的不想使用查询构建器,也不想在少数情况下创建另一个类.



1> Thomas Kim..:

如果必须$with在模型上设置属性而不是将其保留为空,则可以手动覆盖需要急切加载的关系,如下所示:

Model::setEagerLoads([])->get();

链接到API for setEagerLoads


我如何实现这个,如果这个模型被引用与其他模型的关系类似ModelTwo :: with('modelOne') - > get(); 如何避免为modelOne急切加载呢?

2> Yauheni Prak..:

除了Thomas Kim的回答.

如果你无论如何扩展Eloquent\Model类并且经常需要从模型中剥离关系,这个解决方案可能很适合你.

    在默认模型类中创建范围:

    public function scopeNoEagerLoads($query){
        return $query->setEagerLoads([]);
    }
    

    对于任何扩展该类的ORM,您将能够:

    User::noEagerLoads()->all()
    

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有