「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Laravel のグローバル スコープ (StepWise)。

Laravel のグローバル スコープ (StepWise)。

2024 年 11 月 8 日に公開
ブラウズ:340

Global Scope in Laravel (StepWise).

グローバル スコープは Laravel の重要な概念であり、アプリケーション全体で Eloquent 条件を再利用できるようになります。グローバル スコープを実装すると、すべてのモデルにわたるクエリに特定の条件を適用でき、コードの再利用と一貫性が促進されます。対照的に、ローカル スコープは単一のモデルに限定されます。このチュートリアルでは、Laravel でのグローバル スコープの作成と利用に焦点を当てます。

  1. このステップでは、内部にグローバル クラスを作成します。 アプリ/スコープ/アクティブスコープ
where('is_active', '=', '1');

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

    }
}
  1. 次に、ユーザー モデルで ActiveScope を定義します。特定のモデルのブート メソッドをオーバーライドし、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