」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > Laravel 中的全域範圍(StepWise)。

Laravel 中的全域範圍(StepWise)。

發佈於2024-11-08
瀏覽:743

Global Scope in Laravel (StepWise).

全域範圍是 Laravel 中的重要概念,可以在整個應用程式中重複使用 Eloquent 條件。透過實作全域範圍,您可以將特定條件套用到所有模型的查詢,從而促進程式碼重複使用和一致性。相比之下,局部範圍僅限於單一模型。在本教程中,我們將重點介紹在 Laravel 中建立和使用全域範圍。

  1. 在這一步驟中,我們將在 應用程式/範圍/ActiveScope
where('is_active', '=', '1');

        //or we can write
        $builder->whereIsActive('1');

    }
}
  1. 現在在使用者模型中定義 ActiveScope。我們應該重寫給定模型的 boot 方法並使用 addGlobalScope 方法:




在模型中加入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();

如果您喜歡這些內容並希望支持更多精彩文章,請考慮為我買杯咖啡! ☕️?您的支持對我來說意味著整個世界,並有助於保持知識的流動。您可以在這裡執行此操作:?請我喝杯咖啡

版本聲明 本文轉載於:https://dev.to/aj_c6413caf1a793de3a2163b/global-scope-in​​-laravel-stepwise-1ij8?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3