首頁 > 資料庫 > 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板