1.製作簡易後台頁面
首先在views資料夾下新增admin資料夾並且在admin資料夾底下再新增一個order資料夾
並且在order資料夾底下新增index.blade.php檔案
2.接著設計後台訂單列表將訂單顯示出來
<aside> 💡 —→為空格
</aside>
下列為PHP 三元運算式
一行式判斷式, 如果有值則執行$order->orderItems->sum('price'),沒有則顯示0
故?後面是條件成立 :後面是條件不成立
{{ isset($order->orderItems) ? $order->orderItems->sum('price') : 0 }}
<h2>後臺訂單列表</h2>
<table>
<thead>
<tr>
<td>購買時間</td>
<td>購買者</td>
<td>商品清單</td>
<td>訂單總額</td>
<td>是否運送</td>
</tr>
</thead>
<tbody>
@foreach ($orders as $order)
<tr>
<td>{{$order->created_at}}</td>
<td>{{$order->user->name}}</td>
<td>
@foreach ($order->orderItems as $orderItem)
{{$orderItem->product->title}}
@endforeach
</td>
<td>
{{ isset($order->orderItems) ? $order->orderItems->sum('price') : 0 }}
</td>
<td>{{$order->is_shipped}}</td>
</tr>
@endforeach
</tbody>
</table>
3.接著建立一個訂單controller ,因為view資料夾有建立一個admin/orders,故controller資料夾也需要建立一個admin,並把orderController放入
php artisan make:controller OrderController
name space修改多增加admin,因為是建立在Admin資料夾下,故我們還要引用APP底下的controller,才可以使用
4.建立index ,接著引入Order model ,這邊主要是建立order的後台view
這邊用到SQL函式orderby語法使訂單按照創建時間排序
而回傳到view因為在admin/order底下,故會有兩個點
<?php
namespace App\\Http\\Controllers\\Admin;
use Illuminate\\Http\\Request;
use App\\Http\\Controllers\\Controller;
use App\\Models\\Order;
class OrderController extends Controller
{
public function index()
{
$orders = Order::orderBy('created_at' , 'desc')->get();
return view('admin.order.index' ,['orders' => $orders]);
}
}