很难准确地解释我想要什么,但我必须尝试......
Laravel Eloquent 启发我编写一个简单的 php 类来使用数据库。
据我们所知,我们可以在 Laravel 中做到这一点:
$run = DB::table('users')->where('id', 3)->where('level', 2)->get();
我们也这样做:
$run = DB::table('users')->where('id', 3)->where('level', 2)->get()->count();
我们也可以这样做:
$run = DB::table('users')->where('id', 3)->where('level', 2)->get()->first();
我们也能做到:
$run = DB::table('users')->where('id', 3)->where('level', 2)->get()->pluck('id')->toArray();
我从未尝试过,但我相信它也有效:
$run = DB::table('users')->where('id', 3)->where('level', 2)->get()->pluck('id')->toArray()->first();
问题是“它是如何工作的?”
我应该如何编写才能以任何方式返回合适的结果?
// 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();
我需要类似“if - else case for method”的东西,例如:
function __construct() { if(if aint`t no calling any methods except **get()** ){ // Lets return default method return $this->results(); } else{ // Do whatever... } }
这是我的完整代码:
https://github.com/amirandev/PHP-OOP-DB-CLASS/blob/main/db.php
据我所知,当你尝试类似的事情时
您获得所有用户和 php/laravel 计数用户,这意味着
与
first()
相同当您使用此代码
DB::from('users')->count();
时,您实际上是在向 MySql 询问计数,而不是在后端对它们进行计数。我强烈建议使用这个包
barryvdh/laravel-debugbar
来帮助您查看数据库奎里斯。