ホームページ > データベース > mysql チュートリアル > Laravelの高度なWhere句に変数を渡す方法?

Laravelの高度なWhere句に変数を渡す方法?

Patricia Arquette
リリース: 2024-12-17 07:01:25
オリジナル
843 人が閲覧しました

How to Pass Variables into Laravel Advanced Where Clauses?

Laravel の高度な Where 句に変数を渡す

ユーザー定義を使用して結果をフィルタリングする場合など、Laravel の高度な Where 句に外部変数を渡す必要がある状況検索基準を使用する場合、ドキュメントで提供されているデフォルトの構文は使用できない場合があります。

幸いなことに、 use キーワードを使用したより便利な解決策があり、これを使用すると、親スコープから where 句を定義するクロージャに変数をキャプチャできます。例:

DB::table('users')->where(function($query) use ($searchQuery) {
    $query->where('name', 'LIKE', '%'.$searchQuery.'%')
        ->orWhere('address', 'LIKE', '%'.$searchQuery.'%');
});
ログイン後にコピー

この例では、$searchQuery 変数が親スコープからクロージャに渡され、where 句内で使用できます。 use キーワードを使用すると、変数が参照によってキャプチャされ、クロージャ内でアクセスして変更できるようになります。

あるいは、PHP 7.4 のアロー関数の導入により、同じ結果を達成できます。より簡潔な構文:

DB::table('users')->where(fn($query) => $query->where('name', 'LIKE', '%'.$searchQuery.'%')
    ->orWhere('address', 'LIKE', '%'.$searchQuery.'%'));
ログイン後にコピー

アロー関数は親スコープから変数を自動的に取得するため、use を使用して変数を明示的にリストする必要がなくなります。ただし、アロー関数は常に値を返すため、return キーワードを省略する必要があることに注意することが重要です。

以上がLaravelの高度なWhere句に変数を渡す方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート