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
Setahu saya, bila dah cuba macam ni
Anda mendapat semua pengguna dan pengguna kiraan php/laravel yang bermaksud
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.