Comment utiliser Laravel pour développer un système de vote en ligne
Introduction :
Avec le développement d'Internet, de plus en plus de choses peuvent être faites en ligne, y compris le vote. Les systèmes de vote en ligne peuvent recueillir les opinions et les commentaires d’un grand nombre d’utilisateurs de manière pratique et efficace. Cet article expliquera comment utiliser le framework Laravel pour développer un système de vote en ligne de base et fournira des exemples de code spécifiques.
1. Configuration de l'environnement et installation de Laravel :
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 new votesystem
cd votesystem
Démarrez le serveur de développement Laravel : php artisan serve
Ouvrez le navigateur et visitez http://localhost:8000
Si vous voyez la page d'accueil de Laravel, cela signifie que l'environnement a été configuré avec succès.
.env
et configurez les informations de connexion à la base de données. Modifiez les lignes suivantes : 🎜rrreee🎜🎜Créez une base de données nommée voting_system
. 🎜🎜🎜3. Créez des modèles, des migrations et des contrôleurs liés au vote : 🎜🎜🎜Entrez les commandes suivantes sur la ligne de commande pour créer un modèle Poll
et les fichiers de migration de données correspondants : 🎜php artisan make:model Poll -m
🎜🎜🎜Dans le fichier de migration généré, définissez les champs de la table polls
: 🎜rrreee🎜🎜Exécuter la migration de la base de données : 🎜php artisan migrate🎜🎜🎜Créez un contrôleur <code>PollController
et ajoutez les méthodes create
et store
: 🎜rrreee🎜🎜🎜 dans PollController , ajoutez des implémentations des méthodes <code>create
et store
pour faciliter la création et la sauvegarde des votes : 🎜rrreee🎜🎜Créez le modèle Option
et Fichier de migration de données correspondant : 🎜php artisan make:model Option -m
🎜🎜🎜Dans le fichier de migration Option
généré, définissez la table options
Champs : 🎜rrreee🎜🎜Exécuter la migration de la base de données : 🎜php artisan migrate
🎜🎜🎜Dans le modèle Poll
, ajoutez une association avec le modèle Option
Relation : 🎜rrreee🎜🎜🎜4. Créez des vues et des itinéraires : 🎜🎜🎜🎜Dans le répertoire resources/views
, créez un dossier nommé polls
et créez un . fichier de vue create.blade.php
: 🎜rrreee🎜🎜🎜Dans le fichier routes/web.php
, ajoutez les routes suivantes : 🎜rrreee🎜🎜Sur la ligne de commande Exécutez la commande suivante pour actualiser le cache de route : 🎜php artisan route:cache
🎜🎜🎜5 Test : 🎜🎜🎜Ouvrez le navigateur et visitez http://localhost:8000/poll/ createcode>. 🎜🎜Entrez le titre du vote et les options, puis cliquez sur le bouton « Ajouter une option » pour ajouter dynamiquement des options. 🎜🎜Après avoir terminé le remplissage, cliquez sur le bouton « Soumettre », le système enregistrera le vote dans la base de données et accédera à la page des détails du vote. 🎜🎜🎜Conclusion : 🎜Cet article présente comment développer un système de vote en ligne de base à l'aide du framework Laravel. En configurant l'environnement, en créant des modèles, des migrations et des contrôleurs, et en écrivant des vues et des itinéraires, nous avons implémenté une fonctionnalité de vote de base. Sur cette base, vous pouvez encore étendre et améliorer le système, par exemple en ajoutant des fonctions telles que l'authentification des utilisateurs et l'affichage des résultats du vote. J'espère que cet article vous sera utile dans votre parcours de développement Laravel. 🎜🎜(Remarque : les exemples de code ci-dessus sont uniquement à titre de référence, veuillez effectuer les ajustements appropriés en fonction de la situation réelle.)🎜
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!