Laravel雄辩-获得一排

Laravel雄辩-获得一排,laravel,eloquent,Laravel,Eloquent,这可能是一个简单的问题,但我无法理解。我正在尝试通过电子邮件获取用户,使用: $user = User::whereEmail($email)->get(); 但这将返回一个$users的数组(维度为1)。因此,如果我想获得名称,我必须执行$user[0]['first_name']] 我尝试使用limit(1)或take(1),甚至使用->toArray(),但没有区别 我做错了什么?简单地用这个: $user = User::whereEmail($email)->first(

这可能是一个简单的问题,但我无法理解。我正在尝试通过电子邮件获取用户,使用:

$user = User::whereEmail($email)->get();
但这将返回一个$users的数组(维度为1)。因此,如果我想获得名称,我必须执行
$user[0]['first_name']]

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


我做错了什么?

简单地用这个:

$user = User::whereEmail($email)->first();
Model::where('fieldname',$value)->first();
$user = User::where('email',$email)->first(); 
//OR
//$user = User::whereEmail($email)->first();
你也可以这样做

在使用它之前,必须在控制器中声明DB facade 简单地说这条线就是那个

use Illuminate\Support\Facades\DB;
现在,您可以使用此

$getUserByEmail = DB::table('users')->where('email', $email)->first();
或者也是这样

$getUserByEmail = DB::select('SELECT * FROM users WHERE email = ?' , ['useremailaddress@email.com']);
这个函数返回一个数组,其中只有一个项,而第一个函数返回一个对象。记住这一点

希望这有帮助。

您也可以使用这个

$user = User::whereEmail($email)->first();

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

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

语法:

$user = User::whereEmail($email)->first();
Model::where('fieldname',$value)->first();
$user = User::where('email',$email)->first(); 
//OR
//$user = User::whereEmail($email)->first();
示例:

$user = User::whereEmail($email)->first();
Model::where('fieldname',$value)->first();
$user = User::where('email',$email)->first(); 
//OR
//$user = User::whereEmail($email)->first();

laravel 5.8

如果您甚至不需要整行,可以使用
value()
方法从记录中提取单个值。此方法将直接返回列的值:

$first_name = DB::table('users')->where('email' ,'me@mail,com')->value('first_name');
检查Laravel 5.2

$sql = "SELECT * FROM users WHERE email = $email";

$user = collect(\User::select($sql))->first();

试试看

$color = \App\Color::take(1)->first();

是否要从查询的结果中获取一行?或者您只需要数据库查询中的一行?这将返回一个集合,而不是一个元素。它将返回数据否整个受影响的数据不只是一行\请注意,答案当前是正确的(已编辑),否决的原因是上一个答案(编辑前)这将把数据库中的所有用户加载到web应用程序服务器的内存中,如果用户数据超过了服务器RAM中的存储容量,则可能导致服务器崩溃。您只需要一个用户,因此无需在所有用户上浪费内存。指示数据库仅使用
$user=user::whereEmail($email)->first()向您发送第一个用户已接受答案中建议的。