Maison > cadre php > Laravel > Comment développer un système de vote en ligne avec Laravel

Comment développer un système de vote en ligne avec Laravel

WBOY
Libérer: 2023-11-02 18:31:56
original
1322 Les gens l'ont consulté

Comment développer un système de vote en ligne avec Laravel

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 :

  1. Assurez-vous que PHP et Composer ont été installés sur votre machine. Sinon, veuillez d'abord l'installer.
  2. Ouvrez une fenêtre de ligne de commande et utilisez Composer pour installer Laravel :
    composer global require laravel/installercomposer global require laravel/installer
  3. 安装完成后,在命令行中输入以下命令以创建一个新的Laravel项目:
    laravel new votingsystem
  4. 进入项目目录:
    cd votingsystem
  5. 启动Laravel开发服务器:
    php artisan serve
  6. 打开浏览器,访问http://localhost:8000,如果看到Laravel的欢迎页面,说明环境搭建成功。

二、数据库准备:

  1. 在项目根目录中,打开.env文件,配置数据库连接信息。修改以下行:

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=voting_system
    DB_USERNAME=root
    DB_PASSWORD=
    Copier après la connexion
  2. 创建一个名为voting_system的数据库。

三、创建投票相关的模型、迁移和控制器:

  1. 在命令行中输入以下命令以创建一个Poll模型和相应的数据迁移文件:
    php artisan make:model Poll -m
  2. 在生成的迁移文件中,定义polls表的字段:

    public function up()
    {
        Schema::create('polls', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->timestamps();
        });
    }
    Copier après la connexion
  3. 运行数据库迁移:
    php artisan migrate
  4. 创建一个PollController控制器,并添加createstore方法:

    php artisan make:controller PollController --resource
    Copier après la connexion
  5. PollController中,添加createstore方法的实现,以便于创建和保存投票:

    <?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);
        }
    }
    Copier après la connexion
  6. 创建Option模型和相应的数据迁移文件:
    php artisan make:model Option -m
  7. 在生成的Option迁移文件中,定义options表的字段:

    public function up()
    {
        Schema::create('options', function (Blueprint $table) {
            $table->id();
            $table->unsignedBigInteger('poll_id');
            $table->string('name');
            $table->timestamps();
        });
    }
    Copier après la connexion
  8. 运行数据库迁移:
    php artisan migrate
  9. Poll模型中,添加与Option模型的关联关系:

    public function options()
    {
        return $this->hasMany(Option::class);
    }
    Copier après la connexion

四、创建视图和路由:

  1. 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>
    Copier après la connexion
  2. routes/web.php文件中,添加以下路由:

    Route::resource('poll', 'PollController');
    Copier après la connexion
  3. 在命令行中运行以下命令以刷新路由缓存:
    php artisan route:cache

五、测试:

  1. 打开浏览器,访问http://localhost:8000/poll/create
  2. Une fois l'installation terminée, entrez la commande suivante dans la ligne de commande pour créer un nouveau projet Laravel :
  3. laravel new votesystem
  4. Entrez le répertoire du projet :
  5. 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.

🎜🎜2. Préparation de la base de données : 🎜🎜🎜🎜Dans le répertoire racine du projet, ouvrez le fichier .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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal