这可能是一个简单的问题,但我不能解决这个问题。我正在尝试通过电子邮件获取用户,使用:
$user = User::whereEmail($email)->get();
但这是返回一个$users的数组(维度为1)。所以如果我想得到这个名字,我必须做$user[0]['first_name']。我尝试使用limit(1)或take(1),甚至使用->toArray(),但没有区别。我做错了什么?
$user[0]['first_name']
limit(1)
take(1)
->toArray()
wribegjk1#
简单地使用这个:
$user = User::whereEmail($email)->first();
xvw2m8pv2#
有很多种方法。1.通过使用模型。范例:
User::where('column_name', 'value')->first();
在你使用它之前,你必须在控制器中声明DB facade。
use Illuminate\Support\Facades\DB;
现在你可以用这个得到一行
$getUserByEmail = DB::table('users')->where('email', $email)->first();
或者说也被这个3.
$getUserByEmail = DB::select('SELECT * FROM users WHERE email = ?' , ['[email protected]']);
这一个返回一个数组,其中只有一个项目,而第一个返回一个对象。记住这点。希望这对你有帮助。
kadbb4593#
使用Laravel Eloquent,你可以使用first()方法获取一行,如果没有找到where()条件,则返回表的第一行,否则给出给定条件的第一个匹配行。
first()
where()
语法:
Model::where('fieldname',$value)->first();
示例:
$user = User::where('email',$email)->first(); //OR //$user = User::whereEmail($email)->first();
wsewodh24#
试试看
$color = \App\Color::take(1)->first();
arknldoa5#
Laravel 5.8**如果您甚至不需要整行,您可以使用value()方法从记录中提取单个值。该方法将直接返回列的值:
value()
$first_name = DB::table('users')->where('email' ,'[email protected]')->value('first_name');
检查文档
snvhrwxg6#
在给定的代码中,简单地使用这个:
$user = User::whereEmail($email)->first()->first_name
hk8txs487#
$getUserByEmail = DB::select("SELECT * FROM users WHERE email = $email"]);
7条答案
按热度按时间wribegjk1#
简单地使用这个:
xvw2m8pv2#
有很多种方法。
1.通过使用模型。范例:
在你使用它之前,你必须在控制器中声明DB facade。
现在你可以用这个得到一行
或者说也被这个
3.
这一个返回一个数组,其中只有一个项目,而第一个返回一个对象。记住这点。
希望这对你有帮助。
kadbb4593#
使用Laravel Eloquent,你可以使用
first()
方法获取一行,如果没有找到
where()
条件,则返回表的第一行,否则给出给定条件的第一个匹配行。语法:
示例:
wsewodh24#
试试看
arknldoa5#
Laravel 5.8**
如果您甚至不需要整行,您可以使用
value()
方法从记录中提取单个值。该方法将直接返回列的值:检查文档
snvhrwxg6#
在给定的代码中,简单地使用这个:
hk8txs487#