Laravel Eloquent - 获得一排

Kou*_*sha 68 laravel eloquent

这可能是一个简单的问题,但我无法弄清楚这一点.我试图通过电子邮件获取用户:

$user = User::whereEmail($email)->get();
Run Code Online (Sandbox Code Playgroud)

但是这会返回$ users的数组(维度为1).所以,如果我想得到这个名字,我必须这样做$user[0]['first_name'].

我尝试使用limit(1)take(1)甚至使用->toArray()但没有区别.

我究竟做错了什么?

Gan*_*gam 164

只需使用:

$user = User::whereEmail($email)->first();
Run Code Online (Sandbox Code Playgroud)


Kou*_*Das 17

你也可以这样做

在使用它之前,您必须在控制器中声明数据库外观.只需将此行放在此处即可

use Illuminate\Support\Facades\DB;
Run Code Online (Sandbox Code Playgroud)

现在你可以使用它来获取一行

$getUserByEmail = DB::table('users')->where('email', $email)->first();
Run Code Online (Sandbox Code Playgroud)

或者也是这样

$getUserByEmail = DB::select('SELECT * FROM users WHERE email = ?' , ['useremailaddress@email.com']);
Run Code Online (Sandbox Code Playgroud)

这个返回一个只有一个项目的数组,而第一个返回一个对象.记在脑子里.

希望这可以帮助.


Har*_*hil 8

使用 Laravel Eloquent,您可以使用first()方法获得一行,

如果where()没有找到条件,它返回表的第一行,否则它给出给定条件的第一个匹配行。

句法:

Model::where('fieldname',$value)->first();
Run Code Online (Sandbox Code Playgroud)

例子:

$user = User::where('email',$email)->first(); 
//OR
//$user = User::whereEmail($email)->first();
Run Code Online (Sandbox Code Playgroud)