2017-07-24 56 views
0

我想查询结果Laravel 5导出到Excel,但我得到的错误类stdClass的的转换集合字符串数组

对象无法转换为字符串

当我用下面的代码:

$equipements=Equipement::all(); 
    $equipements=collect($equipements)->toArray(); 
    Excel::create('Inventaire',function($excel) use ($equipements){ 
     $excel->sheet('Page 1',function ($sheet) use($equipements){ 
      $sheet->fromArray($equipements); 
     }); 
    })->export('xlsx'); 

但是,这不是我想要的结果,我想从不同的表指定列。有什么办法将集合转换为字符串数组方法collection-> torray返回不是我想要的对象数组。

+0

你可以发布错误跟踪? – Laerte

+0

我解决了这个问题,使用 foreach($ equipements as $ equipement){ $ data [] =(array)$ equipement; } 下面的代码将对象数组转换为字符串数组 – Abdellaziz

回答

0

$equipements发送到fromArray()方法时,您将数组传递给该方法。但是,您要发送所有设备的数组,而每个设备都是设备模型的一个实例。

为每个设备公司发送给它自己的行,请使用以下代码:

Excel::create('Inventaire', function($excel) { 
    $excel->sheet('Page 1', function ($sheet) { 
     $equipements = Equipement::all(); 

     foreach ($equipements as $equipement) { 
      $sheet->fromArray($equipement); 
     } 
    }); 
})->export('xlsx'); 

有一点要注意的是,模型的all()方法已经返回Collection所以没有必要collect()再次证明数据。

相关问题