今日のデジタル時代において、オークション業界は徐々にオンラインに移行しています。この傾向は新型クラウンの流行によってさらに高いレベルに押し上げられ、多くの伝統的なオークションハウスがオンラインオークションに挑戦し始めています。これを達成するには、強力で使いやすいオークション システムが必要でした。この記事では、Laravelフレームワークを使ってネットオークションシステムを構築する方法を紹介します。
Laravel は、ルーティング、データベース移行、キューなど、多くの実用的な機能を提供する人気のある PHP フレームワークです。
1. 準備
コードを記述する前に、Laravel 開発環境と必要な依存関係をインストールする必要があります。このプロセスの詳細な手順については、Laravel の公式 Web サイトで確認できます。簡単な手順をいくつか示します。
Composer を使用して Laravel プロジェクトを作成できます。コンソールで次のコマンドを入力するだけです:
composer create-project --prefer-dist laravel/laravel auction-system
プロジェクト ディレクトリに移動し、次のコマンドを入力してすべての依存関係をインストールします:
composer install
php artisan migrate
php artisan make:model AuctionItem -m
public function up() { Schema::create('auction_items', function (Blueprint $table) { $table->id(); $table->string('name'); $table->text('description'); $table->integer('starting_price'); $table->integer('current_price'); $table->dateTime('start_time'); $table->dateTime('end_time'); $table->timestamps(); }); }
php artisan make:controller AuctionItemController --resource
public function create() { return view('auction_item.create'); }
@extends('layouts.app') @section('content') <div class="container"> <h1>Create New Auction Item</h1> <form action="{{ route('auction-item.store') }}" method="post"> @csrf <div class="form-group"> <label for="name">Name</label> <input type="text" class="form-control" name="name" id="name" required> </div> <div class="form-group"> <label for="description">Description</label> <textarea name="description" id="description" class="form-control" rows="5" required></textarea> </div> <div class="form-group"> <label for="starting_price">Starting Price</label> <input type="number" class="form-control" name="starting_price" id="starting_price" min="0" required> </div> <div class="form-group"> <label for="start_time">Start Time</label> <input type="datetime-local" class="form-control" name="start_time" id="start_time" required> </div> <div class="form-group"> <label for="end_time">End Time</label> <input type="datetime-local" class="form-control" name="end_time" id="end_time" required> </div> <button type="submit" class="btn btn-primary">Create</button> </form> </div> @endsection
Route::get('/auction-items/create', [AuctionItemController::class, 'create'])->name('auction-item.create'); Route::post('/auction-items', [AuctionItemController::class, 'store'])->name('auction-item.store');
public function store(Request $request) { $data = $request->validate([ 'name' => 'required', 'description' => 'required', 'starting_price' => 'required|numeric|min:0', 'start_time' => 'required|date', 'end_time' => 'required|date|after:start_time', ]); $auctionItem = new AuctionItem(); $auctionItem->name = $data['name']; $auctionItem->description = $data['description']; $auctionItem->starting_price = $data['starting_price']; $auctionItem->current_price = $data['starting_price']; $auctionItem->start_time = $data['start_time']; $auctionItem->end_time = $data['end_time']; $auctionItem->save(); return redirect()->route('auction-item.index'); }
public function index() { $auctionItems = AuctionItem::all(); return view('auction_item.index', compact('auctionItems')); } public function bid(Request $request, AuctionItem $auctionItem) { $bidAmount = $request->input('bid_amount'); if ($bidAmount <= $auctionItem->current_price) { return redirect()->back()->withErrors(['Bid amount should be greater than current price']); } $auctionItem->current_price = $bidAmount; $auctionItem->save(); return redirect()->back()->with('success', 'Bid successful'); }
@extends('layouts.app') @section('content') <div class="container"> <h1>Auction Items</h1> @foreach($auctionItems as $auctionItem) <div class="card mb-3"> <div class="card-body"> <h5 class="card-title">{{ $auctionItem->name }}</h5> <p class="card-text">{{ $auctionItem->description }}</p> <p class="card-text">Starting Price: ${{ $auctionItem->starting_price }}</p> <p class="card-text">Current Price: ${{ $auctionItem->current_price }}</p> <form action="{{ route('auction-item.bid', $auctionItem) }}" method="post"> @csrf <div class="form-group"> <label for="bid_amount">Your Bid</label> <input type="number" class="form-control" name="bid_amount" id="bid_amount" min="{{ $auctionItem->current_price }}" required> </div> <button type="submit" class="btn btn-primary">Bid</button> </form> </div> </div> @endforeach </div> @endsection
これで、基本的な機能を備えたネットオークションシステムが構築できました。ユーザーがアプリのホームページにアクセスすると、すべてのオークションアイテムのリストが表示されます。ユーザーはオークション項目をクリックするとオークションの詳細ページに移動し、そこで入札リクエストを送信できます。オークションの現在価値は各入札後に自動的に更新され、オークションが終了するとシステムが自動的に最高入札者にアイテムを販売します。
このプロセスでは、モデル、移行ファイル、ルーティング、コントローラー、ビュー、Blade テンプレート エンジンなど、Laravel フレームワークによって提供されるさまざまな機能を使用しました。これらの強力なツールを使用すると、完全に機能するオンライン オークション システムを簡単に作成できます。
以上がLaravelを使ったネットオークションシステムの開発方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。