这可能是一个简单的问题,但我无法弄清楚。我正在尝试通过以下方式通过电子邮件获取用户:
$user = User::whereEmail($email)->get();
但这将返回$ users的数组(维度1)。因此,如果要获取名称,则必须这样做$user[0]['first_name']
。
我尝试使用limit(1)
或take(1)
,甚至使用,->toArray()
但没有区别。
我究竟做错了什么?
Answers:
你也可以这样做
在使用它之前,必须在控制器中声明数据库外观。
use Illuminate\Support\Facades\DB;
现在您可以使用此行
$getUserByEmail = DB::table('users')->where('email', $email)->first();
或也以此
$getUserByEmail = DB::select('SELECT * FROM users WHERE email = ?' , ['useremailaddress@email.com']);
这个返回一个数组,其中只有一个项目,而第一个返回一个对象。记在脑子里。
希望这可以帮助。
试试看
$color = \App\Color::take(1)->first();
Laravel 5.2
$sql = "SELECT * FROM users WHERE email = $email";
$user = collect(\User::select($sql))->first();
要么
$user = User::table('users')->where('email', $email)->pluck();
$user = User::whereEmail($email)->first();
,其方式与接受的答案中所建议的相同。