Laravel の高度な Wheres に変数を渡す
Laravel では、whereExists メソッドでサブクエリを使用するのは簡単です。ただし、外部変数をクロージャ内に組み込む必要がある場合には課題が発生します。 $this->city->id などの外部変数を使用すると、コードの効率が低下する可能性があります。
解決策: 'use' キーワードを利用する
この問題に対処するために、 use キーワードを使用すると、必要な変数を親スコープからクロージャに渡すことができます。このアプローチにより、クロージャ内で外部変数を便利に使用できるようになります。
例:
DB::table('users') ->where(function ($query) use ($activated) { $query->where('activated', '=', $activated); }) ->get();
PHP 7.4 アップデート: Arrow Functions
PHP 7.4 では、匿名関数のより簡潔な形式であるアロー関数が導入されています。これにより、クロージャに変数を渡すさらに簡略化された方法が提供されます。
PHP 7.4 でアロー関数を使用する例を次に示します。
DB::table('users') ->where(fn($query) => $query->where('activated', '=', $activated)) ->get();
通常の構文と比較すると、アロー関数には次の違いがあります。 :
以上がLaravel の「whereExists」サブクエリに変数を効率的に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。