Laravel 5 将集合转换为字符串数组

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('

我正试图将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返回对象数组,这不是我想要的。

$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;}解决了这个问题下面的代码将对象数组转换为字符串数组