Melalukan Pembolehubah ke Laravel Advanced Where Closures
Dokumentasi Laravel menyediakan contoh penggunaan whereExists dengan penutupan untuk menyertai jadual:
DB::table('users') ->whereExists(function($query) { $query->select(DB::raw(1)) ->from('orders') ->whereRaw('orders.user_id = users.id'); }) ->get();
Tetapi bagaimana jika anda perlu menghantar pembolehubah luaran ke dalam penutupan, seperti carian pertanyaan?
->where('city_id', '=', $this->city->id) ->where(function($query) { $query->where('name', 'LIKE', '%'.$searchQuery.'%') ->orWhere('address', 'LIKE', '%'.$searchQuery.'%') })
Penyelesaian semasa adalah untuk mencipta harta baharu dan mengaksesnya menggunakan $this, tetapi adakah cara yang lebih mudah?
Ya, anda boleh menggunakan kata kunci penggunaan untuk lulus pembolehubah daripada skop induk ke dalam penutupan:
DB::table('users')->where(function ($query) use ($activated) { $query->where('activated', '=', $activated); }) ->get();
Dalam PHP 7.4, anda boleh menggunakan fungsi anak panah yang lebih pendek sintaks:
DB::table('users')->where(fn($query) => $query->where('activated', '=', $activated)) ->get();
Perbezaan utama antara fungsi anak panah dan penutupan biasa:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melewati Pembolehubah ke Laravel Advanced Where Closures?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!