转换集合字符串数组
问题描述:
我想查询结果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返回不是我想要的对象数组。
答
将$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()
再次证明数据。
你可以发布错误跟踪? – Laerte
我解决了这个问题,使用 foreach($ equipements as $ equipement){ $ data [] =(array)$ equipement; } 下面的代码将对象数组转换为字符串数组 – Abdellaziz