ホームページ >データベース >mysql チュートリアル >Laravel の高度な Where クロージャに変数を渡すにはどうすればよいですか?
Laravel の高度な Where クロージャに変数を渡す
Laravel の高度な where 関数は、クエリをフィルタリングする強力な方法を提供します。ただし、where 関数で使用されるクロージャに外部変数を渡す必要がある状況が発生する場合があります。
シナリオ例
外部変数を使用するとします。 $searchQuery など、where クロージャ内:
->where('city_id', '=', $this->city->id) ->where(function($query) { $query->where('name', 'LIKE', '%'.$searchQuery.'%') ->orWhere('address', 'LIKE', '%'.$searchQuery.'%') })
キーワードを使用解決策
use キーワードを使用して必要な変数をクロージャに渡すことができます:
DB::table('users')->where(function ($query) use ($searchQuery) { $query->where('name', 'LIKE', '%'.$searchQuery.'%') ->orWhere('address', 'LIKE', '%'.$searchQuery.'%') })->get();
PHP 7.4 Arrow Function (Update)
PHP 7.4 以降では、より簡潔にアロー関数を使用できます。構文:
DB::table('users')->where(fn($query) => $query->where('name', 'LIKE', '%'.$searchQuery.'%') ->orWhere('address', 'LIKE', '%'.$searchQuery.'%'))->get();
通常の匿名関数とは異なり、アロー関数は親スコープから変数を自動的に取得し、使用による明示的なリストを許可しません。ただし、return ステートメントは 1 つだけ必要であり、複数行のコードを含めることはできません。
以上がLaravel の高度な Where クロージャに変数を渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。