https://docs.laravel-excel.com/3.1/getting-started/installation.html
composer require maatwebsite/excel
最下面
貼上 php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config
會產生兩個資料夾
https://docs.laravel-excel.com/3.1/architecture/objects.html
下指令
php artisan make:export OrdersExport --model=Order
產生資料夾跟檔案
到
修改裡面的程式碼
下面
最前面
修改後的程式碼
<?php
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Models\Order;
use App\Http\Controllers\Controller;
use App\Notifications\OrderDelivery;
use Maatwebsite\Excel\Facades\Excel;
use App\Exports\OrdersExport; // ← 加這行
class OrderController extends Controller
{
public function index(Request $request)
{
$dataPerPage = 5;
$orders = Order::with(['orderItems', 'orderItems.product', 'user'])
->orderBy('created_at', 'desc')
->whereHas('orderItems')
->paginate($dataPerPage);
return view('admin.orders.index', [
'orders' => $orders,
'orderCount' => Order::whereHas('orderItems')->count(),
]);
}
public function delivery($id)
{
$order = Order::find($id);
if ($order->is_shipped) {
return response(['result' => false]);
} else {
$order->update(['is_shipped' => true]);
$order->user->notify(new OrderDelivery());
return response(['result' => true]);
}
}
public function export()
{
return Excel::download(new OrdersExport,'orders.xlsx');
}
}
前端畫面加入
<div>
<a href="/admin/orders/excel/export">匯出訂單</a>
</div>
加入路由Route::get('admin/orders/excel/export', 'Admin\OrderController@export');
要再執行一次畫面才會更新
php artisan serve
畫面上面顯示
按 下載檔案 顯示
對照資料表的內容
加入表頭的顯示
修改程式碼
程式碼