这可能是一个简单的问题,但我无法弄清楚这一点.我试图通过电子邮件获取用户:
$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)
这个返回一个只有一个项目的数组,而第一个返回一个对象.记在脑子里.
希望这可以帮助.
使用 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)
| 归档时间: |
|
| 查看次数: |
125155 次 |
| 最近记录: |