>PHP 프레임워크 >ThinkPHP >ThinkPHP6을 사용하여 주문 관리 시스템을 구현하는 방법

ThinkPHP6을 사용하여 주문 관리 시스템을 구현하는 방법

PHPz
PHPz원래의
2023-06-20 08:42:461890검색

인터넷의 발달과 전자상거래의 증가로 인해 점점 더 많은 회사가 온라인 주문 관리 시스템을 사용하여 주문을 보다 효율적으로 관리하고 업무 효율성을 향상하며 더 나은 고객 서비스를 제공하기 시작했습니다. 이 기사에서는 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

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. 검색, 정렬 및 페이징 추가 function

검색, 정렬, 페이징 기능을 구현하기 위해서는 "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. Testing

이제 생성된 주문 관리 시스템을 테스트할 수 있습니다. 주문 목록을 보려면 브라우저에 http://localhost/orders를 입력하세요. 키워드를 입력 후 검색버튼을 클릭하시면 검색결과를 보실 수 있으며, 상세정보 버튼을 클릭하시면 주문내역을 보실 수 있습니다. 페이지 매김 링크 아래에서 페이징 컨트롤을 볼 수 있습니다.

요약

이 시점에서 ThinkPHP6 프레임워크를 사용하여 간단한 주문 관리 시스템을 만드는 모든 단계를 완료했습니다. 이 문서에서는 데이터 테이블, 모델 및 컨트롤러를 만드는 방법을 설명하고 보기 파일을 사용하여 주문 데이터를 렌더링하고, 검색하고, 정렬하고, 페이지를 매기는 방법을 보여줍니다. 이 튜토리얼을 공부함으로써 ThinkPHP6 프레임워크에 대해 더 깊이 이해하고 ThinkPHP6 프레임워크를 사용하여 자신만의 비즈니스 시스템을 개발할 수 있습니다.

위 내용은 ThinkPHP6을 사용하여 주문 관리 시스템을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.