2017-07-24 61 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()再次證明數據。

相關問題