【问题标题】:Getting specific column from sql database using raw query in laravel在 laravel 中使用原始查询从 sql 数据库中获取特定列
【发布时间】:2020-12-07 04:05:19
【问题描述】:

我有这个从 Laravel 的数据库表中提取数据的原始查询

 $username = DB::table('hotspot_users')
 ->select('userName')  
 ->where('assignedTo', '786')->get();

我得到这些值:[{"userName":"kim"}]

但我只想提取用户名“kim”本身,而不是数组。我试图这样做但没有成功:

 $convert1=json_decode($username);
 $newusername=$convert1->userName; 

但我得到一个错误:尝试获取非对象的属性“用户名”

知道如何解决这个问题

【问题讨论】:

  • 你能把查询的结果贴出来吗?
  • 我已经指出了;它以这种形式出现 [{"userName":"kim"}]

标签: php laravel laravel-query-builder


【解决方案1】:

您可以这样做,而不是您正在做的事情:

HotspotUser::where('assignedTo', 786)->pluck('userName');

现在您将拥有一组名称;或者如果你只想要第一个:

HotspotUser::where('assignedTo', 786)->first()->user_name;

(我不确定该属性是user_name 还是userName;您应该使用简单的列名以使事情变得更容易。)

【讨论】:

    【解决方案2】:

    您将DB 的结果作为 php stdClass 对象获得,因此您可以对其进行迭代并获取每个被查询的变量。下面的代码可能会对您有所帮助。

    如果使用get()

    $data = DB::table('hotspot_users')
               ->where('assignedTo', '786')->select('userName')->get();
    
    foreach ($data as $datum) {
        $result[] = $datum->userName;
    }
    

    如果使用first()

    $data = DB::table('hotspot_users')
                ->where('assignedTo', '786')->select('userName')->first()->userName;
    

    【讨论】:

      【解决方案3】:

      嗨
      正如你提到的,这是一个数组 [{"userName":"kim"}]
      所以你有两个选择

      首先,你 first 插入 get

       $username = DB::table('hotspot_users')
       ->select('userName')  
       ->where('assignedTo', '786')->first();
      
       $newusername=$convert1->userName; 
      

      其次,获取数组的第一个元素

       $username = DB::table('hotspot_users')
       ->select('userName')  
       ->where('assignedTo', '786')->get();
      
       $username = reset($username);
       $convert1=json_decode($username);
       $newusername=$convert1['userName']; 
      

      【讨论】:

      • 谢谢 第一种方法我得到一个错误 Json_decode() 期望参数 1 是字符串
      • 第二个我得到错误尝试获取非对象的属性'userName'我不知道做错了什么
      • 我都更新了,你能再试一次并说出结果吗?
      猜你喜欢
      • 2016-09-14
      • 2020-11-03
      • 2021-12-05
      • 2018-08-27
      • 1970-01-01
      • 2015-07-13
      • 2018-08-11
      • 2021-12-13
      • 2010-12-03
      相关资源
      最近更新 更多