全域範圍是 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