Laravel:从MySQL查询获取单个值 [英] Laravel: getting a a single value from a MySQL query

查看:101
本文介绍了Laravel:从MySQL查询获取单个值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆