我正在尝试将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');
但这不是我想要的结果,我想指定不同表中的列。有没有办法将一个集合转换为字符串数组,方法集合 - > torray返回的对象数组并不是我想要的。
答案 0 :(得分:0)
将$equipements
发送到fromArray()
方法时,您将数组传递给该方法。但是你发送了所有设备的数组,每个设备都是Equipement模型的一个实例。
要将每个设备发送到它自己的行,请使用以下代码:
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()
该数据。