Laravel 5 将集合转换为字符串数组
我正试图将Laravel 5中的查询结果导出到Excel,但我得到了错误 类stdClass的对象无法转换为字符串 当我使用下面的代码时:Laravel 5 将集合转换为字符串数组,laravel-5,export-to-excel,Laravel 5,Export To Excel,我正试图将Laravel 5中的查询结果导出到Excel,但我得到了错误 类stdClass的对象无法转换为字符串 当我使用下面的代码时: $equipements=Equipement::all(); $equipements=collect($equipements)->toArray(); Excel::create('Inventaire',function($excel) use ($equipements){ $excel->sheet('
$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返回对象数组,这不是我想要的。将
$Equipments
发送到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()
方法已经返回了一个集合
,因此无需再次collect()
该数据。可以发布错误跟踪吗?我使用foreach($equipments as$equipment){$data[]=(array)$equipment;}解决了这个问题下面的代码将对象数组转换为字符串数组