ホームページ  >  記事  >  PHPフレームワーク  >  Laravelでスコープを使う方法

Laravelでスコープを使う方法

WBOY
WBOYオリジナル
2022-06-09 11:15:313184ブラウズ

laravel では、モデル内のデータを処理するためにスコープが使用されます。モデル内のスコープの先頭でメソッドを定義できます。これらのメソッドはモデルを通じて直接呼び出すことができ、クエリ スコープと呼ばれます。構文は「パブリック関数スコープ」です。単語の最初の文字を大文字にします ($query){...}」。

Laravelでスコープを使う方法

#この記事の動作環境: Windows 10 システム、Laravel バージョン 8、Dell G3 コンピューター。

laravel でスコープを使用する方法

laravel のスコープ スコープ

laravel では、テンプレート内で処理されるデータ (属するかどうか) (追加、削除、変更、確認) ) が導入されました。 スコープを使用して処理します。

#つまり、テンプレート定義メソッドにプレフィックス スコープを追加します。

つまり、Laravel のモデルはスコープの先頭でメソッドを定義でき、これらのメソッドはモデルを通じて直接呼び出すことができます。このタイプのアプローチはクエリ スコープとも呼ばれます。

条件付きクエリはデータ クエリでよく使用されます。これらのクエリ条件の一部は同じです。Scope では、これらの同じクエリ条件の再利用を実現できます。

通常のスコープ

定義

メソッドは、最初の文字を大文字にしたスコープという名前が付けられます (これは任意に定義できます)

public function scopeStatus($query)
{
    return $query->where('status',1);
}

Use

最初の文字が小文字の関数は、スコープを削除した後に呼び出されます。

scopeStatus () は status () を呼び出します。

User::status()->get();

グローバル スコープ

ブート メソッドを再定義し、親クラスのブートを統合し、デフォルトでグローバルに使用されるようにグローバル スコープを追加する必要があります。 。

protected static function boot()
{
    parent::boot(); // TODO: Change the autogenerated stub
    static::addGlobalScope('avaiable',function (Builder $builder){
        $builder->whereIn('status', [0, 1]);
    });
}

このグローバル スコープを必要としないクエリがある場合、それを削除する必要がある場合があります。

withOutGlobalScope() メソッドを使用する

Post::withOutGlobalScope('avaiable')->get();

[関連する推奨事項:

laravel ビデオ チュートリアル]

以上がLaravelでスコープを使う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。