首頁  >  文章  >  php框架  >  如何使用ThinkPHP6實現訂單管理系統

如何使用ThinkPHP6實現訂單管理系統

PHPz
PHPz原創
2023-06-20 08:42:461807瀏覽

隨著網路的發展和電子商務的興起,越來越多的企業開始使用線上訂單管理系統,以便更好地管理訂單、提高工作效率、提供更好的客戶服務。本文將介紹如何使用ThinkPHP6框架開發簡單的訂單管理系統,涵蓋了訂單清單、訂單詳情、搜尋、排序、分頁等功能。

  1. 準備工作

首先,需要安裝好PHP、MySQL和Composer。在安裝完這些必備組件後,就可以安裝ThinkPHP6。如果您不熟悉ThinkPHP6,可以閱讀官方文件或參考一些相關教學。

  1. 建立資料庫和資料表

在開始開發訂單管理系統之前,需要建立一個資料庫。在MySQL中建立一個名為「order_system」的資料庫,然後建立一個名為「orders」的資料表。

此資料表包含以下欄位:

id ​​- 訂單ID

customer_name - 客戶姓名

customer_email - 客戶電子郵件

product_name - 產品名稱

product_price - 產品價格

product_quantity - 產品數量

created_at - 訂單建立時間

updated_at - 訂單更新時間

  1. 建立模型和控制器

在ThinkPHP6中,一個模型對應一個資料表,一個控制器對應一個路由。

首先,建立一個名為「Order」的模型,它將對應「orders」資料表。

php artisan make:model Order -m

新增到灌入的程式碼

namespace appmodel;

use thinkModel;

class Order extends Model
{

}

然後,建立一個名為「Order」的控制器和「index」方法,用於顯示訂單清單檢視。

php artisan make:controller Order --resource

加入到Action中、程式碼

public function index()
{
    $orders = Order::paginate(10);
    return view('order/index', ['orders' => $orders]);
}
  1. 建立視圖

接下來,建立一個名為「index.blade.php」的視圖,用於顯示訂單列表,它包含了搜尋、排序和分頁的功能。

首先,在「order」目錄下建立一個名為「index.blade.php」的視圖文件,然後新增以下程式碼:

@extends('layout')

@section('content')
    <h2>订单列表</h2>

    <form action="{{route('orders.index')}}" method="get">
        <div class="form-group">
            <input type="text" name="q" value="{{$q}}" class="form-control" placeholder="搜索">
        </div>

        <button type="submit" class="btn btn-primary">搜索</button>
    </form>

    <table class="table">
        <thead>
        <tr>
            <th>ID</th>
            <th>客户姓名</th>
            <th>客户电子邮件</th>
            <th>产品名称</th>
            <th>产品价格</th>
            <th>产品数量</th>
            <th>订单创建时间</th>
            <th></th>
        </tr>
        </thead>
        <tbody>
        @foreach ($orders as $order)
            <tr>
                <td>{{$order->id}}</td>
                <td>{{$order->customer_name}}</td>
                <td>{{$order->customer_email}}</td>
                <td>{{$order->product_name}}</td>
                <td>{{$order->product_price}}</td>
                <td>{{$order->product_quantity}}</td>
                <td>{{$order->created_at}}</td>
                <td><a href="{{route('orders.show', $order->id)}}" class="btn btn-primary">详情</a></td>
            </tr>
        @endforeach
        </tbody>
    </table>

    {{$orders->links()}}
@endsection

在該視圖中,使用了Bootstrap樣式,還新增了一個搜尋框和一個分頁控制項。

  1. 建立訂單詳情方法和視圖

然後,建立一個名為「show」方法和一個名為「show.blade.php」的視圖,用於顯示訂單的詳細資訊。

在「Order」控制器中新增以下程式碼:

public function show($id)
{
    $order = Order::findOrFail($id);
    return view('order/show', ['order' => $order]);
}

在「order」目錄中建立一個名為「show.blade.php」的視圖文件,並新增以下程式碼:

@extends('layout')

@section('content')
    <h2>订单详情</h2>

    <table class="table">
        <tbody>
        <tr>
            <th>ID</th>
            <td>{{$order->id}}</td>
        </tr>
        <tr>
            <th>客户姓名</th>
            <td>{{$order->customer_name}}</td>
        </tr>
        <tr>
            <th>客户电子邮件</th>
            <td>{{$order->customer_email}}</td>
        </tr>
        <tr>
            <th>产品名称</th>
            <td>{{$order->product_name}}</td>
        </tr>
        <tr>
            <th>产品价格</th>
            <td>{{$order->product_price}}</td>
        </tr>
        <tr>
            <th>产品数量</th>
            <td>{{$order->product_quantity}}</td>
        </tr>
        <tr>
            <th>订单创建时间</th>
            <td>{{$order->created_at}}</td>
        </tr>
        <tr>
            <th>订单更新时间</th>
            <td>{{$order->updated_at}}</td>
        </tr>
        </tbody>
    </table>

    <a href="{{route('orders.index')}}" class="btn btn-primary">返回</a>
@endsection
  1. 新增搜尋、排序和分頁功能

為了實現搜尋、排序和分頁功能,需要對「index」方法進行修改。

在“Order”控制器的“index”方法中添加以下程式碼:

public function index(Request $request)
{
    $q = $request->input('q');

    $orders = Order::when($q, function ($query) use ($q) {
            $query->where('customer_name', 'like', "%$q%")
                ->orWhere('customer_email', 'like', "%$q%")
                ->orWhere('product_name', 'like', "%$q%");
        })
        ->orderBy('created_at', 'desc')
        ->paginate(10)
        ->appends(['q' => $q]);

    return view('order/index', ['orders' => $orders, 'q' => $q]);
}

在該程式碼中,使用了IlluminateSupportFacadesRequest類別來取得搜尋參數“q”,並且使用了“ orderBy」方法來依建立時間倒序排序。然後,使用“paginate”方法來分頁,並使用“appends”方法將搜尋參數新增至分頁連結。

  1. 測試

現在可以測試已經建立的訂單管理系統了。在瀏覽器中輸入http://localhost/orders就可以看到訂單清單了。輸入關鍵字並點擊搜尋按鈕後,可以看到搜尋結果;點擊詳情按鈕後可以查看訂單詳情。在分頁連結下方,可以看到分頁控制項。

總結

到此,我們已經完成了使用ThinkPHP6框架建立一個簡單的訂單管理系統的所有步驟。本文介紹如何建立資料表、模型和控制器,並且展示如何使用視圖文件來呈現訂單資料、搜尋、排序和分頁。透過學習此教程,您可以更深入地理解ThinkPHP6框架,並且能夠使用ThinkPHP6框架開發您自己的業務系統。

以上是如何使用ThinkPHP6實現訂單管理系統的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn