LaraCSV--從 Eloquent 模型中生成 CSV 檔案

captain2021發表於2017-04-25

LaraCSV 是 Muhammad Usman 新發布的包,它允許你流暢的從 Eloquent 模型中生成csv檔案。
這些程式碼樣例是展示使用 LaraCSV 多簡單。

   $users = User::get(); // All users
   $csvExporter = new \Laracsv\Export();
   $csvExporter->build($users, ['email', 'name'])->download();

如果你執行這個方法,將會下載一個包含使用者資訊的csv檔案,例如:

   email,name
   eric@example.com,"Eric L. Barnes"
   john@example.com,"John Smith"
   bob@example.com,"Bob Jones"

除此的基礎操作之外,他也包含一些更強大的特性:
調整欄位值

   $csvExporter = new \Laracsv\Export();
   $users = User::get();

   // Register the hook before building
   $csvExporter->beforeEach(function ($user) {
       $user->created_at = date('f', strtotime($user->created_at)); 
   });

   $csvExporter->build($users, ['email', 'name' => 'Full Name', 'created_at' => 'Joined']);

新增一列

   // The notes field doesn't exist so values for this field will be blank by default 
   $csvExporter->beforeEach(function ($user) {
        // Now notes field will have this value
        $user->notes = 'Add your notes'; 
   });

   $csvExporter->build($users, ['email', 'notes']);

Eloquent 關聯關係
這個將會獲取到商品名稱和關聯的種類名稱,一個一對一關聯關係

   $products = Products::with('category')->get();
   $csvExporter->build($products, ['title', 'category.title']);

Github 上檢視專案, 檢視他的 readme 文件和更多例子。
可以試試這個。

翻譯自:https://laravel-news.com/generate-csv-file...

本作品採用《CC 協議》,轉載必須註明作者和本文連結
Keep Young, Keep Simple.

相關文章