Dalam laravel, kaedah "DB::raw()" digunakan untuk pertanyaan sql yang kompleks Kaedah ini boleh merawat set hasil pertanyaan sebagai jadual sementara, dan kemudian menggunakan sintaks pembina pertanyaan laravel untuk Pemprosesan halaman. sintaksnya ialah "DB::raw('function or field');".
Persekitaran pengendalian artikel ini: sistem Windows 10, Laravel versi 6, komputer Dell G3.
Saya menghadapi masalah dalam projek, pertanyaan sql kompleks, menggunakan pembina pertanyaan laravel sangat menyusahkan, pelbagai pertanyaan Menghubungkan senarai panjang daripada keadaan membuat kepala saya sakit; maka saya ingin menggunakan pernyataan SQL asli untuk membuat pertanyaan, tetapi kemudian saya tidak boleh menggunakan kaedah paging() laravel ini apabila kaedah DB::raw() berguna! Prinsip sintaks adalah untuk merawat set hasil pertanyaan anda sebagai jadual sementara, dan kemudian menggunakan sintaks pembina pertanyaan laravel untuk pemprosesan halaman
Contoh 1:
$users = DB::table('users') ->select(DB::raw('count(*) as user_count, status')) ->where('status', '<>', 1) ->groupBy('status') ->get();
Contoh 2; :
DB::table('someTable') ->selectRaw('count(*), min(some_field) as someMin, max(another_field) as someMax') ->get();
Contoh 3:
DB::table('someTable')->select( array( DB::raw('min(some_field) as someMin'), DB::raw('max(another_field) as someMax'), DB::raw('COUNT(*) as `count`') ) )->get()
Contoh 4:
SELECT (CASE WHEN (gender = 1) THEN 'M' ELSE 'F' END) AS gender_text FROM users; $users = DB::table('users') ->select(DB::raw(" name, surname, (CASE WHEN (gender = 1) THEN 'M' ELSE 'F' END) as gender_text") );
[Cadangan berkaitan: tutorial video laravel]
Atas ialah kandungan terperinci Apakah kegunaan DB::raw dalam laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!