So entwickeln Sie ein Online-Auktionssystem mit Laravel
Im heutigen digitalen Zeitalter hat sich die Auktionsbranche nach und nach online verlagert. Dieser Trend wurde durch die neue Corona-Epidemie auf ein höheres Niveau getrieben, und viele traditionelle Auktionshäuser haben begonnen, Online-Auktionen auszuprobieren. Um dies zu erreichen, benötigten sie ein Auktionssystem, das sowohl leistungsstark als auch einfach zu bedienen war. In diesem Artikel wird erläutert, wie Sie mit dem Laravel-Framework ein Online-Auktionssystem erstellen.
Laravel ist ein beliebtes PHP-Framework, das viele praktische Funktionen wie Routing, Datenbankmigration, Warteschlange usw. bietet.
1. Vorbereitung
Bevor wir Code schreiben, müssen wir die Entwicklungsumgebung von Laravel und einige notwendige Abhängigkeiten installieren. Detaillierte Anweisungen zu diesem Vorgang finden Sie auf der offiziellen Laravel-Website. Hier sind einige kurze Schritte:
- Laravel installieren
Sie können Composer verwenden, um ein Laravel-Projekt zu erstellen. Geben Sie einfach den folgenden Befehl in die Konsole ein:
composer create-project --prefer-dist laravel/laravel auction-system
- Abhängigkeiten installieren
Gehen Sie in das Projektverzeichnis und geben Sie den folgenden Befehl ein, um alle Abhängigkeiten zu installieren:
composer install
- Konfigurationsdatenbank
Ändern Sie die Datenbankverbindung in der .env-Datei Um Informationen zu erhalten, legen Sie das Feld APP_KEY auf den Anwendungsschlüssel fest. Führen Sie dann den folgenden Befehl aus, um die Datenbank zu migrieren:
php artisan migrate
2. Erstellen Sie das Auktionsartikelmodell und migrieren Sie
Modell ist ein Kernkonzept in Laravel, das die Datenbanktabelle darstellt, die mit der Anwendung interagiert. Wir müssen ein Auktionsartikelmodell erstellen, um alle Online-Auktionsartikel darzustellen. In Laravel sind Modelle eins zu eins mit Migrationen, die zum Generieren von Datenbanktabellen verwendet werden.
Verwenden Sie den folgenden Befehl, um das Auktionsartikelmodell und die Migration zu generieren:
php artisan make:model AuctionItem -m
Dieser Befehl generiert für uns eine AuctionItem.php-Datei und eine Datenbankmigrationsdatei. Die Migrationsdateien befinden sich im Verzeichnis „database/migrations“ und die Modelldateien im Verzeichnis „app/Models“.
Wir müssen die Datenbanktabelle der Auktionsartikel in der Migrationsdatei definieren. Öffnen Sie die generierte Migrationsdatei und ändern Sie die Up-Methode wie folgt:
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(); }); }
Hier definieren wir ein Modell von Auktionsartikeln und fügen die folgenden Felder hinzu:
- Name: der Name des Auktionsartikels
- Beschreibung: die Beschreibung des Auktionsartikel
- starting_price: Startpreis der Auktionsartikel
- current_price: aktueller Preis der Auktionsartikel
- start_time: Auktionsstartzeit
- end_time: Auktionsendzeit
3. Auktionsartikelschnittstelle und Controller hinzufügen
Jetzt brauchen wir Zur Bereitstellung unserer Die Anwendung fügt eine Schnittstelle hinzu, über die neue Auktionsgegenstände erstellt werden können. Um dies zu erreichen, werden wir die Ansichten und die Blade-Templating-Engine von Laravel verwenden.
Zuerst müssen wir einen Controller erstellen, der die gesamte Logik im Zusammenhang mit Auktionsartikeln verwaltet. Verwenden Sie den folgenden Befehl, um einen Controller zu erstellen:
php artisan make:controller AuctionItemController --resource
Dieser Befehl erstellt für uns eine Controller-Datei namens AuctionItemController.php und generiert die Standardeinstellungen index(), create(), store(), show(), edit(), update (), destroy() und andere Methoden. Hier müssen wir die Methode create() verwenden, um die Seite mit dem neuen Auktionsartikel zu verarbeiten.
Öffnen Sie die Datei AuctionItemController.php und fügen Sie den folgenden Code in die Methode create() ein:
public function create() { return view('auction_item.create'); }
Diese Methode rendert eine Ansichtsvorlage namens Auction_item/create.blade.php und gibt sie an den Browser zurück.
Jetzt müssen wir einen Ordner namens „auction_item“ im Verzeichnis „resources/views“ erstellen und darin eine Datei namens „create.blade.php“ erstellen. Fügen Sie den folgenden Code hinzu:
@extends('layouts.app') @section('content') <div class="container"> <h1 id="Create-New-Auction-Item">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
Diese Ansichtsdatei rendert eine Benutzeroberfläche mit den Formularen, die zum Erstellen neuer Auktionsartikel erforderlich sind. Wir haben die Blade-Vorlagen-Engine von Laravel zum Rendern des Formulars und die Routen und Controller von Laravel zur Verarbeitung der übermittelten Daten verwendet.
4. Routing- und Verarbeitungslogik für die Erstellung von Auktionsartikeln hinzufügen
Jetzt müssen wir eine Route hinzufügen, um die vom Benutzer übermittelten Formulardaten zu verarbeiten. Fügen Sie den folgenden Routing-Code in der Datei „routes/web.php“ hinzu:
Route::get('/auction-items/create', [AuctionItemController::class, 'create'])->name('auction-item.create'); Route::post('/auction-items', [AuctionItemController::class, 'store'])->name('auction-item.store');
Diese Route verwendet die Methode „store()“ des AuctionItemController-Controllers, um POST-Anfragen zu verarbeiten.
Öffnen Sie die Datei AuctionItemController.php und fügen Sie den folgenden Code hinzu:
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'); }
Diese Methode validiert die vom Benutzer übermittelten Formulardaten, speichert sie in der Datenbank und leitet den Benutzer zur Seite mit der Auflistung der Auktionsartikel weiter.
5. Listenseite und Auktionsfunktion
Jetzt müssen wir eine Auktionsartikellistenseite hinzufügen und darin einige grundlegende Auktionsfunktionen implementieren. Wir werden die Blade-Template-Engine von Laravel verwenden, um die HTML-Seite zu generieren, und den Controller von Laravel verwenden, um die auktionsbezogene Logik zu verwalten.
Fügen Sie den folgenden Code in AuctionItemController.php hinzu:
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'); }
Diese Methoden rendern die Auktionsartikelliste, bearbeiten die Gebotsanfrage des Benutzers und speichern die Gebote in der Datenbank.
Erstellen Sie eine Datei mit dem Namen index.blade.php im Ordner resources/views/auction_item und fügen Sie den folgenden Code hinzu:
@extends('layouts.app') @section('content') <div class="container"> <h1 id="Auction-Items">Auction Items</h1> @foreach($auctionItems as $auctionItem) <div class="card mb-3"> <div class="card-body"> <h5 id="auctionItem-name">{{ $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
Diese Ansichtsdatei zeigt alle Auktionsartikel an und stellt ein Formular zur Bearbeitung von Gebotsanfragen bereit.
6. Abgeschlossen
Jetzt haben wir ein Online-Auktionssystem mit Grundfunktionen etabliert. Wenn Benutzer die Startseite der App besuchen, sehen sie eine Liste aller Auktionsgegenstände. Benutzer können auf einen beliebigen Auktionsartikel klicken und werden zur Seite mit den Auktionsdetails weitergeleitet, wo sie eine Gebotsanfrage senden können. Der aktuelle Wert der Auktion wird nach jedem Gebot automatisch aktualisiert, und wenn die Auktion endet, verkauft das System den Artikel automatisch an den Höchstbietenden.
In diesem Prozess haben wir verschiedene Funktionen verwendet, die vom Laravel-Framework bereitgestellt werden, wie z. B. Modelle, Migrationsdateien, Routen, Controller, Ansichten und die Blade-Vorlagen-Engine. Mit diesen leistungsstarken Tools können wir ganz einfach ein voll funktionsfähiges Online-Auktionssystem erstellen.
Das obige ist der detaillierte Inhalt vonSo entwickeln Sie ein Online-Auktionssystem mit Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die neuesten Versionen von Laravel 9 und CodeIgniter 4 bieten aktualisierte Funktionen und Verbesserungen. Laravel9 übernimmt die MVC-Architektur und bietet Funktionen wie Datenbankmigration, Authentifizierung und Template-Engine. CodeIgniter4 nutzt die HMVC-Architektur, um Routing, ORM und Caching bereitzustellen. In Bezug auf die Leistung sorgen das auf Dienstanbietern basierende Designmuster von Laravel9 und das leichte Framework von CodeIgniter4 für eine hervorragende Leistung. In praktischen Anwendungen eignet sich Laravel9 für komplexe Projekte, die Flexibilität und leistungsstarke Funktionen erfordern, während CodeIgniter4 für schnelle Entwicklung und kleine Anwendungen geeignet ist.

Vergleichen Sie die Datenverarbeitungsfunktionen von Laravel und CodeIgniter: ORM: Laravel verwendet EloquentORM, das eine relationale Klassen-Objekt-Zuordnung bereitstellt, während CodeIgniter ActiveRecord verwendet, um das Datenbankmodell als Unterklasse von PHP-Klassen darzustellen. Abfrage-Builder: Laravel verfügt über eine flexible verkettete Abfrage-API, während der Abfrage-Builder von CodeIgniter einfacher und Array-basiert ist. Datenvalidierung: Laravel bietet eine Validator-Klasse, die benutzerdefinierte Validierungsregeln unterstützt, während CodeIgniter über weniger integrierte Validierungsfunktionen verfügt und eine manuelle Codierung benutzerdefinierter Regeln erfordert. Praxisfall: Beispiel einer Benutzerregistrierung zeigt Lar

Für Anfänger bietet CodeIgniter eine sanftere Lernkurve und weniger Funktionen, deckt aber die Grundbedürfnisse ab. Laravel bietet einen größeren Funktionsumfang, weist jedoch eine etwas steilere Lernkurve auf. In Bezug auf die Leistung schneiden sowohl Laravel als auch CodeIgniter gut ab. Laravel verfügt über eine umfangreichere Dokumentation und aktive Community-Unterstützung, während CodeIgniter einfacher und leichtgewichtiger ist und über starke Sicherheitsfunktionen verfügt. Im praktischen Fall der Erstellung einer Blogging-Anwendung vereinfacht EloquentORM von Laravel die Datenmanipulation, während CodeIgniter mehr manuelle Konfiguration erfordert.

Laravel – Artisan Commands – Laravel 5.7 bietet eine neue Möglichkeit, neue Befehle zu behandeln und zu testen. Es enthält eine neue Funktion zum Testen von Handwerkerbefehlen und die Demonstration wird unten erwähnt?

Bei der Auswahl eines Frameworks für große Projekte haben Laravel und CodeIgniter jeweils ihre eigenen Vorteile. Laravel ist für Anwendungen auf Unternehmensebene konzipiert und bietet modularen Aufbau, Abhängigkeitsinjektion und einen leistungsstarken Funktionsumfang. CodeIgniter ist ein leichtes Framework, das sich eher für kleine bis mittelgroße Projekte eignet und Wert auf Geschwindigkeit und Benutzerfreundlichkeit legt. Für große Projekte mit komplexen Anforderungen und einer großen Anzahl von Benutzern sind die Leistung und Skalierbarkeit von Laravel besser geeignet. Für einfache Projekte oder Situationen mit begrenzten Ressourcen sind die leichten und schnellen Entwicklungsfunktionen von CodeIgniter idealer.

Für kleine Projekte eignet sich Laravel, für größere Projekte, die starke Funktionalität und Sicherheit erfordern. CodeIgniter eignet sich für sehr kleine Projekte, die geringes Gewicht und Benutzerfreundlichkeit erfordern.

Vergleichen Sie Laravel's Blade und die Twig-Vorlagen-Engine von CodeIgniter und wählen Sie je nach Projektanforderungen und persönlichen Vorlieben: Blade basiert auf der MVC-Syntax, die eine gute Codeorganisation und Vorlagenvererbung fördert. Twig ist eine Bibliothek eines Drittanbieters, die flexible Syntax, leistungsstarke Filter, erweiterten Support und eine Sicherheits-Sandbox bietet.

Laravel – Artisan Console – Das Laravel-Framework bietet drei Haupttools für die Interaktion über die Befehlszeile, nämlich Artisan, Ticker und REPL. In diesem Kapitel wird Artisan ausführlich erläutert.
