將變數傳遞到 Laravel 的高階Where
在 Laravel 中,透過 whereExists 方法使用子查詢非常簡單。然而,當需要將外部變數納入閉包中時,就會出現挑戰。使用外部變量,例如 $this->city->id,會降低程式碼效率。
解決方案:使用 'use' 關鍵字
為了解決這個問題,use 關鍵字允許將必要的變數從父作用域傳遞到閉包中。這種方法可以方便地在閉包中使用外部變數。
例如:
DB::table('users') ->where(function ($query) use ($activated) { $query->where('activated', '=', $activated); }) ->get();
PHP 7.4 更新:箭頭函數
PHP 7.4 引入了箭頭函數,這是一種更簡潔的匿名函數形式。這提供了一種更簡化的將變數傳遞到閉包的方法。
這是在PHP 7.4 中使用箭頭函數的範例:
DB::table('users') ->where(fn($query) => $query->where('activated', '=', $activated)) ->get();
與常規語法相比,箭頭函數有以下差異:
以上是如何有效率地將變數傳遞到 Laravel 的「whereExists」子查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!