ThinkPHP6 を使用して注文管理システムを実装する方法

PHPz
リリース: 2023-06-20 08:42:46
オリジナル
1862 人が閲覧しました

インターネットの発展と電子商取引の台頭により、ますます多くの企業がオンライン注文管理システムを使用して注文をより適切に管理し、作業効率を向上させ、より良い顧客サービスを提供し始めています。この記事では、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 では、モデルはデータ テーブルに対応し、コントローラーはルートに対応します。

まず、「orders」データ テーブルに対応する「Order」という名前のモデルを作成します。

php artisan make:model Order -m
ログイン後にコピー

挿入されたコードに追加

namespace appmodel;

use thinkModel;

class Order extends Model
{

}
ログイン後にコピー

次に、「Order」という名前のコントローラーと、注文リスト ビューを表示するための「index」メソッドを作成します。

php artisan make:controller Order --resource
ログイン後にコピー

アクションに追加、コード

public function index()
{
    $orders = Order::paginate(10);
    return view('order/index', ['orders' => $orders]);
}
ログイン後にコピー

    ビューの作成
次に、表示に使用する "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
ログイン後にコピー

このビューでは、ブートストラップ スタイルが使用されます。 、検索ボックスとページング コントロールも追加します。

    注文詳細メソッドとビューの作成
次に、「注文詳細の表示」用に「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
ログイン後にコピー

    検索、並べ替え、ページング機能の追加
検索、並べ替え、ページング機能を実装するには、「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」メソッドを使用してページ分割されたリンクに検索パラメータを追加します。

    テスト
作成した注文管理システムをテストできます。ブラウザに http://localhost/orders と入力して注文リストを表示します。キーワードを入力して検索ボタンをクリックすると検索結果が表示され、詳細ボタンをクリックすると注文内容が表示されます。ページネーション リンクの下に、ページング コントロールが表示されます。

概要

この時点で、ThinkPHP6 フレームワークを使用してシンプルな注文管理システムを作成するためのすべての手順が完了しました。この記事では、データ テーブル、モデル、コントローラーの作成方法について説明し、ビュー ファイルを使用して注文データのレンダリング、検索、並べ替え、ページネーションを行う方法を示します。このチュートリアルを学習することで、ThinkPHP6 フレームワークをより深く理解し、ThinkPHP6 フレームワークを使用して独自のビジネス システムを開発できるようになります。

以上がThinkPHP6 を使用して注文管理システムを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート