首页 > php框架 > Laravel > 如何使用Laravel开发一个在线投票系统

如何使用Laravel开发一个在线投票系统

WBOY
发布: 2023-11-02 18:31:56
原创
1272 人浏览过

如何使用Laravel开发一个在线投票系统

如何使用Laravel开发一个在线投票系统

引言:
随着互联网的发展,越来越多的事物都可以在线完成,其中包括投票。在线投票系统可以方便、高效地收集大量用户的意见和反馈。本文将介绍如何使用Laravel框架来开发一个基本的在线投票系统,并提供具体代码示例。

一、环境搭建与Laravel安装:

  1. 确保您的机器上已经安装了PHP和Composer。如果没有,请先安装。
  2. 打开命令行窗口,使用Composer安装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=
    登录后复制
  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();
        });
    }
    登录后复制
  3. 运行数据库迁移:
    php artisan migrate
  4. 创建一个PollController控制器,并添加createstore方法:

    php artisan make:controller PollController --resource
    登录后复制
  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);
        }
    }
    登录后复制
  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();
        });
    }
    登录后复制
  8. 运行数据库迁移:
    php artisan migrate
  9. Poll模型中,添加与Option模型的关联关系:

    public function options()
    {
        return $this->hasMany(Option::class);
    }
    登录后复制

四、创建视图和路由:

  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>
    登录后复制
  2. routes/web.php文件中,添加以下路由:

    Route::resource('poll', 'PollController');
    登录后复制
  3. 在命令行中运行以下命令以刷新路由缓存:
    php artisan route:cache

五、测试:

  1. 打开浏览器,访问http://localhost:8000/poll/create
  2. 安装完成后,在命令行中输入以下命令以创建一个新的Laravel项目:
  3. laravel new votingsystem
  4. 进入项目目录:
  5. cd votingsystem

启动Laravel开发服务器:
php artisan serve

打开浏览器,访问http://localhost:8000,如果看到Laravel的欢迎页面,说明环境搭建成功。

🎜🎜二、数据库准备:🎜🎜🎜🎜在项目根目录中,打开.env文件,配置数据库连接信息。修改以下行:🎜rrreee🎜🎜创建一个名为voting_system的数据库。🎜🎜🎜三、创建投票相关的模型、迁移和控制器:🎜🎜🎜在命令行中输入以下命令以创建一个Poll模型和相应的数据迁移文件:🎜php artisan make:model Poll -m🎜🎜🎜在生成的迁移文件中,定义polls表的字段:🎜rrreee🎜🎜运行数据库迁移:🎜php artisan migrate🎜🎜🎜创建一个PollController控制器,并添加createstore方法:🎜rrreee🎜🎜🎜在PollController中,添加createstore方法的实现,以便于创建和保存投票:🎜rrreee🎜🎜创建Option模型和相应的数据迁移文件:🎜php artisan make:model Option -m🎜🎜🎜在生成的Option迁移文件中,定义options表的字段:🎜rrreee🎜🎜运行数据库迁移:🎜php artisan migrate🎜🎜🎜在Poll模型中,添加与Option模型的关联关系:🎜rrreee🎜🎜🎜四、创建视图和路由:🎜🎜🎜🎜在resources/views目录下,创建一个名为polls的文件夹,并在其中创建一个create.blade.php视图文件:🎜rrreee🎜🎜🎜在routes/web.php文件中,添加以下路由:🎜rrreee🎜🎜在命令行中运行以下命令以刷新路由缓存:🎜php artisan route:cache🎜🎜🎜五、测试:🎜🎜🎜打开浏览器,访问http://localhost:8000/poll/create。🎜🎜输入投票标题和选项,点击"添加选项"按钮可以动态添加选项。🎜🎜填写完毕后,点击"提交"按钮,系统会将投票保存到数据库中,并跳转到投票详情页面。🎜🎜🎜结论:🎜本文介绍了使用Laravel框架如何开发一个基本的在线投票系统。通过配置环境、创建模型、迁移和控制器以及编写视图和路由,我们实现了基本的投票功能。您可以在此基础上进一步扩展和完善系统,例如增加用户鉴权、展示投票结果等功能。希望这篇文章能对您的Laravel开发之旅有所帮助。🎜🎜(注:以上代码示例仅为参考,请根据实际情况做适当调整。)🎜

以上是如何使用Laravel开发一个在线投票系统的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板