Laravel:从MySQL查询获取单个值 [英] Laravel: getting a a single value from a MySQL query
问题描述
我正在尝试使用laravel从MySQL数据库中获取一个值,但问题是我得到了一个数组.这是我在MySQL命令行中的查询结果:
I'm trying get a single value from MySQL database using laravel but the problem I'm getting an array . this is my query result in MySQL command line:
select groupName from users;
+-----------+
| groupName |
+-----------+
| Admin |
+-----------+
我的laravel函数:
my laravel function:
public static function PermitAddNewUser(){
$username=Session::get('key');
$data=DB::select("select groupName from users where username='$username';");
return $data;
}
期望的$ data值是一个值为value = Admin的字符串
expected $data value is a string with value= Admin
但是我得到的是: [{"groupName":"Admin"}]
推荐答案
对不起,我忘记了许多评论的 pluck()
:最简单的方法是:
Sorry i forgot about pluck()
as many have commented :
Easiest way is :
return DB::table('users')->where('username', $username)->pluck('groupName');
直接将所请求的行的第一个结果直接返回为字符串.
Which will directly return the only the first result for the requested row as a string.
使用流利的查询构建器,您仍然将获得一个数组.我的意思是查询生成器不知道从该查询返回多少行.这是您可以做的更干净的方法
Using the fluent query builder you will obtain an array anyway. I mean The Query Builder has no idea how many rows will come back from that query. Here is what you can do to do it a bit cleaner
$result = DB::table('users')->select('groupName')->where('username', $username)->first();
first()
告诉queryBuilder仅返回一行,因此不返回任何数组,因此您可以执行以下操作:
The first()
tells the queryBuilder to return only one row so no array, so you can do :
return $result->groupName;
希望有帮助
这篇关于Laravel:从MySQL查询获取单个值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!