Rumah > Soal Jawab > teks badan
Susah nak terangkan betul-betul apa yang saya nak, tapi saya kena cuba...
Laravel Eloquent memberi inspirasi kepada saya untuk menulis kelas php yang mudah untuk menggunakan pangkalan data.
Setakat yang kami tahu kami boleh melakukan ini dalam Laravel:
$run = DB::table('users')->where('id', 3)->where('level', 2)->get();
Kami juga melakukan ini:
$run = DB::table('users')->where('id', 3)->where('level', 2)->get()->count();
Kita juga boleh melakukan ini:
$run = DB::table('users')->where('id', 3)->where('level', 2)->get()->first();
Kita juga boleh melakukannya:
$run = DB::table('users')->where('id', 3)->where('level', 2)->get()->pluck('id')->toArray();
Saya tidak pernah mencubanya, tetapi saya percaya ia juga berkesan:
$run = DB::table('users')->where('id', 3)->where('level', 2)->get()->pluck('id')->toArray()->first();
Soalannya ialah "Bagaimana ia berfungsi?"
Bagaimanakah saya harus menulis ini untuk mengembalikan hasil yang sesuai dalam apa jua cara?
// It was easy to write my code to return total results if I write like that $run = DB::from('users')->where('id', 3)->where('level', 2)->get()->count(); // Or to return first result if I write like that $run = DB::from('users')->where('id', 3)->where('level', 2)->get()->first(); // But what sould I do to return all the results if write like that (As eloquent works). $run = DB::from('users')->where('id', 3)->where('level', 2)->get();
Saya memerlukan sesuatu seperti "if - else case for method" seperti:
function __construct() { if(if aint`t no calling any methods except **get()** ){ // Lets return default method return $this->results(); } else{ // Do whatever... } }
Ini kod lengkap saya:
https://github.com/amirandev/PHP-OOP-DB-CLASS/blob/main/db.php
P粉5365327812024-04-02 09:51:57
Setahu saya, bila dah cuba macam ni
$run = DB::from('users')->get()->count();
Anda mendapat semua pengguna dan pengguna kiraan php/laravel yang bermaksud
$users = DB::from('users')->get(); // get all users $usersConut = $users->count(); //count them away of database/mysql
adalah sama dengan first()
Apabila anda menggunakan kod ini DB::from('users')->count();
anda sebenarnya meminta MySql untuk kiraan dan bukannya mengiranya di bahagian belakang.
Saya sangat mengesyorkan menggunakan pakej ini barryvdh/laravel-debugbar
untuk membantu anda melihat pertanyaan pangkalan data.