Code前端首页关于Code前端联系我们

Laravel框架开发:从数据库检索的对象转换为数组

terry 2年前 (2023-09-25) 阅读数 49 #后端开发

(1)提出的问题

我发现从数据库检索的数据是一个对象,而不是数组,所以我们不能通过它来达到一些目标

(2)找到解决方案

这是我的Controller层的一个小代码片段

$produceStyle = exhibitionSql::allProduceStyle();//产品类型
    //var_dump($produceStyle);
    $j=0;
    $produceArray = Array();
    foreach($produceStyle as $value){
      //var_dump($value);
 
      $j++;
      $produceArray[$j]=$value->produceColorType;
 
    }

这是我的Model层的一个小代码片段

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

你可以在Controller中看到我想要的数据首先通过了,一起定义了一个数组来保存这个对象中列的值,这样我就可以把数组中的数据存储起来使用了

如下:

for($i=1; $i <= $j; $i++){
      // echo "sad";
      //var_dump($produceArray[$i]['produceColorType']);
      if($select == $produceArray[$i]){
        // echo "sda";
        $produceData =exhibitionSql::produceColor($select);//产品数据
        $CarouselData =exhibitionSql::secondCarouselData();//轮播图
        return view('B_page/produce',[
          'CarouselData'=>    $CarouselData,
          'produceStyle'=>    $produceStyle,
          'produceData'=>     $produceData
        ]);
      }

(3)由网友解决

 public function object_array($array) {
    if(is_object($array)) {
      $array = (array)$array;
    } if(is_array($array)) {
      foreach($array as $key=>$value) {
        $array[$key] = object_array($value);
      }
    }
    return $array;
  }

网友提供方法我试了一下还是不行,所以请教大家指点一下。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门