Inhaltsverzeichnis
Create New Auction Item
Auction Items
{{ $auctionItem->name }}
Heim PHP-Framework Laravel So entwickeln Sie ein Online-Auktionssystem mit Laravel

So entwickeln Sie ein Online-Auktionssystem mit Laravel

Nov 02, 2023 pm 01:51 PM
laravel 开发 在线拍卖

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
Nach dem Login kopieren
  • Abhängigkeiten installieren

Gehen Sie in das Projektverzeichnis und geben Sie den folgenden Befehl ein, um alle Abhängigkeiten zu installieren:

composer install
Nach dem Login kopieren
  • 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
Nach dem Login kopieren

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
Nach dem Login kopieren

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();
    });
}
Nach dem Login kopieren

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
Nach dem Login kopieren

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');
}
Nach dem Login kopieren

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
Nach dem Login kopieren

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');
Nach dem Login kopieren

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');
}
Nach dem Login kopieren

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');
}
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Vergleich der neuesten Versionen von Laravel und CodeIgniter Vergleich der neuesten Versionen von Laravel und CodeIgniter Jun 05, 2024 pm 05:29 PM

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.

Wie vergleichen sich die Datenverarbeitungsfunktionen in Laravel und CodeIgniter? Wie vergleichen sich die Datenverarbeitungsfunktionen in Laravel und CodeIgniter? Jun 01, 2024 pm 01:34 PM

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

Was ist einsteigerfreundlicher: Laravel oder CodeIgniter? Was ist einsteigerfreundlicher: Laravel oder CodeIgniter? Jun 05, 2024 pm 07:50 PM

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 – Handwerkerbefehle Laravel – Handwerkerbefehle Aug 27, 2024 am 10:51 AM

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?

Laravel vs CodeIgniter: Welches Framework ist besser für große Projekte? Laravel vs CodeIgniter: Welches Framework ist besser für große Projekte? Jun 04, 2024 am 09:09 AM

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.

Laravel vs CodeIgniter: Welches Framework ist besser für kleine Projekte? Laravel vs CodeIgniter: Welches Framework ist besser für kleine Projekte? Jun 04, 2024 pm 05:29 PM

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.

Welche ist die bessere Template-Engine, Laravel oder CodeIgniter? Welche ist die bessere Template-Engine, Laravel oder CodeIgniter? Jun 03, 2024 am 11:30 AM

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-Konsole Laravel – Artisan-Konsole Aug 27, 2024 am 10:51 AM

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.

See all articles