#ORM操作進階SQL應用

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}} &nbsp;
                    @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,才可以使用

1629986049627.jpg

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]);
    }
}