zoukankan      html  css  js  c++  java
  • laravel 查询数据toArray内层无法转换的问题

    语法:get_object_var($object),返回一个数组。获取$object对象中的属性,组成一个数组

    <?php
    class person{
     public $name="王美人";
     public $age = 25;
     public $birth;
    }
    $p = new person();
    print_r(get_object_vars($p));
    ?>
    

    输出结果:

    Array ( [name] => 王美人 [age] => 25 [birth] => )

    在laravel数据库查询中使用toArray()方法外层已经转化成了数组,但是内层依然是对象的问题。

    array (size=1)
      0 => 
        object(stdClass)[1804]
          public 'id' => int 17
          public 'ip' => string '192.168.0.60' (length=12)
          public 'access_time' => int 1615625654
          public 'access_count' => int 1
          public 'last_time' => int 1615625672
    

      

    在vendorlaravelframeworksrcIlluminateSupportCollection.php中增加方法 getArrayList()

     public function toArray()
        {
            return array_map(function ($value) {
                return $value instanceof Arrayable ? $value->toArray() : $value;
            }, $this->items);
        }
    /*增加方法*/
        public function getArrayList(){
            return array_map('get_object_vars', $this->items);
    
        }
    

    查询时使用:

    DB::table('api_log')->select('id','ip','access_time','access_count','last_time')->where('ip',$logInfo['ip'])->orderBy('id','desc')->limit(1)->get()->getArrayList()[0];
    

    显示结果:

    array (size=5)
      'id' => int 17
      'ip' => string '192.168.0.60' (length=12)
      'access_time' => int 1615625654
      'access_count' => int 0
      'last_time' => int 1615625654
    

      

    Array ( [name] => 王美人 [age] => 25 [birth] => )

  • 相关阅读:
    chrome安装vue-devtools
    企业网络设计
    nginx的安装
    Typora 的使用
    如何学习dubbo?
    关于原码反码和补码以及byte&0xff
    HttpClient以及连接池的使用
    计算机网络读书笔记:tcp面试常见问题都在里面了
    接口类是否继承自Object?
    数据挖掘会议记录
  • 原文地址:https://www.cnblogs.com/fogwang/p/14529578.html
Copyright © 2011-2022 走看看