全局范围是 Laravel 中的一个重要概念,可以在整个应用程序中重用 Eloquent 条件。通过实施全局范围,您可以将特定条件应用于所有模型的查询,从而促进代码重用和一致性。相比之下,局部范围仅限于单个模型。在本教程中,我们将重点介绍在 Laravel 中创建和使用全局范围。
where('is_active', '=', '1'); //or we can write $builder->whereIsActive('1'); } }
在模型中添加ActiveScope后,User::all()将生成以下SQL。
select * from `users` where `is_active` = '1'在某些情况下,您可能希望在不应用全局范围的情况下获取所有数据。在 Laravel 中,您可以使用 withoutGlobalScope 方法绕过全局范围并获取所有数据。
User::withoutGlobalScope(ActiveScope::class)->get();如果要删除应用于模型的多个或全部全局作用域,可以使用 Laravel 中的 withoutGlobalScopes 方法。此方法允许您绕过所有全局范围或指定要删除的范围。这是一个例子:
// Remove all of the global scopes... User::withoutGlobalScopes()->get();// Remove some of the global scopes... User::withoutGlobalScopes([ ActiveScope::class, AgeScope::class ])->get();如果您喜欢这些内容并希望支持更多精彩文章,请考虑给我买杯咖啡! ☕️?您的支持对我来说意味着整个世界,并有助于保持知识的流动。您可以在这里执行此操作:?请我喝杯咖啡
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3