首頁 > 資料庫 > mysql教程 > 如何將變數傳遞給 Laravel 的高階Where閉包?

如何將變數傳遞給 Laravel 的高階Where閉包?

Linda Hamilton
發布: 2024-12-20 22:04:12
原創
160 人瀏覽過

How Can I Pass Variables to Laravel's Advanced Where Closures?

將變數傳遞到 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 箭頭函數(更新)

在 PHP 7.4及更高版本中,可以使用箭頭函數來更簡潔語法:

DB::table('users')->where(fn($query) => $query->where('name', 'LIKE', '%'.$searchQuery.'%')
->orWhere('address', 'LIKE', '%'.$searchQuery.'%'))->get();
登入後複製

與常規匿名函數不同,箭頭函數會自動從父作用域捕獲變量,並且不允許透過使用明確列出。但是,它們必須有一個 return 語句,並且不能包含多行程式碼。

以上是如何將變數傳遞給 Laravel 的高階Where閉包?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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