当前位置:首页 > CMS教程 > 其它CMS > 列表

laravel框架之数据库查出来的对象实现转化为数组

发布:smiling 来源: PHP粉丝网  添加日期:2022-01-16 17:32:13 浏览: 评论:0 

今天小编就为大家分享一篇laravel框架之数据库查出来的对象实现转化为数组,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧。

(1)问题提出

我在从数据库查出来的数据中发现其是一个对象,而不是一个数组,这样我们就无法遍历它从而达到一些目的。

(2)寻求解决

这里是我的Controller层的一小段代码

  1. $produceStyle = exhibitionSql::allProduceStyle();//产品类型 
  2.     //var_dump($produceStyle); 
  3.     $j=0; 
  4.     $produceArray = Array(); 
  5.     foreach($produceStyle as $value){ 
  6.       //var_dump($value); 
  7.    
  8.       $j++; 
  9.       $produceArray[$j]=$value->produceColorType; 
  10.    
  11.     } 

这里是我Model层的一小段代码

  1. public static function allProduceStyle(){//产品类型 
  2.    $data =DB::select("select distinct produceColorType from produce "); 
  3.  
  4.    return $data
  5.  } 

可以看出我在Controller中把得到的数据首先遍历一遍,同时定义一个数组,接住这个对象中的一个字段中的值,这样我就可以把这个数据都存入一个数组进行使用了

如下:

  1. for($i=1; $i <= $j$i++){ 
  2.       // echo "sad"; 
  3.       //var_dump($produceArray[$i]['produceColorType']); 
  4.       if($select == $produceArray[$i]){ 
  5.         // echo "sda"; 
  6.         $produceData =exhibitionSql::produceColor($select);//产品数据 
  7.         $CarouselData =exhibitionSql::secondCarouselData();//轮播图 
  8.         return view('B_page/produce',[ 
  9.           'CarouselData'=>    $CarouselData
  10.           'produceStyle'=>    $produceStyle
  11.           'produceData'=>     $produceData 
  12.         ]); 
  13.       } 

(3)网友解决

  1. public function object_array($array) { 
  2.    if(is_object($array)) { 
  3.      $array = (array)$array
  4.    } if(is_array($array)) { 
  5.      foreach($array as $key=>$value) { 
  6.        $array[$key] = object_array($value); 
  7.      } 
  8.    } 
  9.    return $array
  10.  } 

网友提供了一个这样的方法但是我试了没有效果,所以在此我也想请教一下大家,给点指导。

Tags: laravel数据库查询

分享到: