So entwickeln Sie mit Laravel ein Online-Abstimmungssystem
Einführung:
Mit der Entwicklung des Internets können immer mehr Dinge online erledigt werden, einschließlich Abstimmungen. Online-Abstimmungssysteme können bequem und effizient Meinungen und Feedback einer großen Anzahl von Benutzern sammeln. In diesem Artikel wird die Verwendung des Laravel-Frameworks zur Entwicklung eines grundlegenden Online-Abstimmungssystems vorgestellt und spezifische Codebeispiele bereitgestellt.
1. Umgebungseinrichtung und Laravel-Installation:
composer global require laravel/installer
composer global require laravel/installer
laravel new votingsystem
cd votingsystem
php artisan serve
http://localhost:8000
,如果看到Laravel的欢迎页面,说明环境搭建成功。二、数据库准备:
在项目根目录中,打开.env
文件,配置数据库连接信息。修改以下行:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=voting_system DB_USERNAME=root DB_PASSWORD=
voting_system
的数据库。三、创建投票相关的模型、迁移和控制器:
Poll
模型和相应的数据迁移文件:php artisan make:model Poll -m
在生成的迁移文件中,定义polls
表的字段:
public function up() { Schema::create('polls', function (Blueprint $table) { $table->id(); $table->string('title'); $table->timestamps(); }); }
php artisan migrate
创建一个PollController
控制器,并添加create
和store
方法:
php artisan make:controller PollController --resource
在PollController
中,添加create
和store
方法的实现,以便于创建和保存投票:
<?php namespace AppHttpControllers; use IlluminateHttpRequest; use AppPoll; class PollController extends Controller { public function create() { return view('polls.create'); } public function store(Request $request) { $this->validate($request, [ 'title' => 'required' ]); $poll = Poll::create([ 'title' => $request->title ]); // 添加投票选项 foreach($request->options as $option) { $poll->options()->create([ 'name' => $option ]); } return redirect()->route('poll.show', $poll->id); } }
Option
模型和相应的数据迁移文件:php artisan make:model Option -m
在生成的Option
迁移文件中,定义options
表的字段:
public function up() { Schema::create('options', function (Blueprint $table) { $table->id(); $table->unsignedBigInteger('poll_id'); $table->string('name'); $table->timestamps(); }); }
php artisan migrate
在Poll
模型中,添加与Option
模型的关联关系:
public function options() { return $this->hasMany(Option::class); }
四、创建视图和路由:
在resources/views
目录下,创建一个名为polls
的文件夹,并在其中创建一个create.blade.php
视图文件:
<form action="{{ route('poll.store') }}" method="POST"> @csrf <label for="title">标题:</label> <input type="text" name="title"> <label for="options">选项:</label> <ul id="options"> <li> <input type="text" name="options[]"> </li> </ul> <button id="add-option" type="button">添加选项</button> <button type="submit">提交</button> </form> <script> document.getElementById('add-option').addEventListener('click', function() { var option = document.createElement('li'); option.innerHTML = '<input type="text" name="options[]">'; document.getElementById('options').appendChild(option); }); </script>
在routes/web.php
文件中,添加以下路由:
Route::resource('poll', 'PollController');
php artisan route:cache
五、测试:
http://localhost:8000/poll/create
laravel neues Votingsystem
cd Votingsystem
Starten Sie den Laravel-Entwicklungsserver: php artisan Serve
Öffnen Sie den Browser und besuchen Sie http://localhost:8000. Wenn Sie die Begrüßungsseite von Laravel sehen, bedeutet dies, dass die Umgebung erfolgreich eingerichtet wurde.
🎜🎜2. Datenbankvorbereitung: 🎜🎜🎜🎜Öffnen Sie im Projektstammverzeichnis die Datei.env
und konfigurieren Sie die Datenbankverbindungsinformationen. Ändern Sie die folgenden Zeilen: 🎜rrreee🎜🎜Erstellen Sie eine Datenbank mit dem Namen voting_system
. 🎜🎜🎜3. Erstellen Sie abstimmungsbezogene Modelle, Migrationen und Controller: 🎜🎜🎜Geben Sie die folgenden Befehle in die Befehlszeile ein, um ein Poll
-Modell und entsprechende Datenmigrationsdateien zu erstellen: 🎜php artisan make:model Poll -m
🎜🎜🎜In der generierten Migrationsdatei definieren Sie die Felder der polls
-Tabelle: 🎜rrreee🎜🎜Datenbankmigration ausführen: 🎜php artisan migrate🎜🎜🎜Erstellen Sie einen <code>PollController
-Controller und fügen Sie die Methoden create
und store
hinzu: 🎜rrreee🎜🎜🎜 in PollController , fügen Sie Implementierungen der Methoden <code>create
und store
hinzu, um das Erstellen und Speichern von Stimmen zu erleichtern: 🎜rrreee🎜🎜Erstellen Sie das Modell Option
und entsprechende Datenmigrationsdatei: 🎜php artisan make:model Option -m
🎜🎜🎜In der generierten Option
-Migrationsdatei definieren Sie die Tabelle options
Felder: 🎜rrreee🎜🎜Datenbankmigration ausführen: 🎜php artisan migrate
🎜🎜🎜Fügen Sie im Poll
-Modell eine Zuordnung mit dem Option
-Modell hinzu Beziehung: 🎜rrreee🎜🎜🎜4. Erstellen Sie Ansichten und Routen: 🎜🎜🎜🎜Erstellen Sie im Verzeichnis resources/views
einen Ordner mit dem Namen polls
und erstellen Sie einen create.blade.php
Datei anzeigen: 🎜rrreee🎜🎜🎜Fügen Sie in der Datei routes/web.php
die folgenden Routen hinzu: 🎜rrreee🎜🎜Führen Sie in der Befehlszeile den folgenden Befehl aus So aktualisieren Sie den Routen-Cache: 🎜php artisan route:cache
🎜🎜🎜5. Test: 🎜🎜🎜Öffnen Sie den Browser und besuchen Sie http://localhost:8000/poll/ createCode>. 🎜🎜Geben Sie den Abstimmungstitel und die Optionen ein und klicken Sie auf die Schaltfläche „Option hinzufügen“, um Optionen dynamisch hinzuzufügen. 🎜🎜Nach Abschluss des Ausfüllens klicken Sie auf die Schaltfläche „Senden“. Das System speichert die Abstimmung in der Datenbank und springt zur Seite mit den Abstimmungsdetails. 🎜🎜🎜Fazit: 🎜In diesem Artikel wird vorgestellt, wie man mit dem Laravel-Framework ein grundlegendes Online-Abstimmungssystem entwickelt. Durch die Konfiguration der Umgebung, die Erstellung von Modellen, Migrationen und Controllern sowie das Schreiben von Ansichten und Routen haben wir grundlegende Abstimmungsfunktionen implementiert. Auf dieser Basis können Sie das System weiter ausbauen und verbessern, etwa um Funktionen wie Benutzerauthentifizierung und Anzeige von Abstimmungsergebnissen. Ich hoffe, dieser Artikel wird Ihnen bei Ihrer Laravel-Entwicklungsreise hilfreich sein. 🎜🎜(Hinweis: Die obigen Codebeispiele dienen nur als Referenz. Bitte nehmen Sie entsprechend der tatsächlichen Situation entsprechende Anpassungen vor.)🎜
Das obige ist der detaillierte Inhalt vonSo entwickeln Sie ein Online-Abstimmungssystem mit Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!