如何使用Laravel開發一個在線投票系統

如何使用Laravel開發一個在線投票系統

如何使用laravel開發一個在線投票系統

引言:
隨著互聯網的發展,越來越多的事物都可以在線完成,其中包括投票。在線投票系統可以方便、高效地收集大量用戶的意見和反饋。本文將介紹如何使用Laravel框架來開發一個基本的在線投票系統,并提供具體代碼示例。

一、環境搭建與Laravel安裝:

  1. 確保您的機器上已經安裝了phpcomposer。如果沒有,請先安裝。
  2. 打開命令行窗口,使用Composer安裝Laravel:
    composer 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控制器,并添加create和store方法:

    php artisan make:controller PollController --resource
  5. 在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' =&gt; 'required'         ]);          $poll = Poll::create([             'title' =&gt; $request-&gt;title         ]);          // 添加投票選項         foreach($request-&gt;options as $option) {             $poll-&gt;options()-&gt;create([                 'name' =&gt; $option             ]);         }          return redirect()-&gt;route('poll.show', $poll-&gt;id);     } }
  6. 創建Option模型和相應的數據遷移文件:
    php artisan make:model Option -m
  7. 在生成的Option遷移文件中,定義options表的字段:

    public function up() {     Schema::create('options', function (Blueprint $table) {         $table-&gt;id();         $table-&gt;unsignedBigInteger('poll_id');         $table-&gt;string('name');         $table-&gt;timestamps();     }); }
  8. 運行數據庫遷移:
    php artisan migrate
  9. 在Poll模型中,添加與Option模型的關聯關系:

    public function options() {     return $this-&gt;hasMany(Option::class); }

四、創建視圖和路由:

  1. 在resources/views目錄下,創建一個名為polls的文件夾,并在其中創建一個create.blade.php視圖文件:

    
    
    @csrf

    <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. 輸入投票標題和選項,點擊”添加選項”按鈕可以動態添加選項。
  3. 填寫完畢后,點擊”提交”按鈕,系統會將投票保存到數據庫中,并跳轉到投票詳情頁面。

結論:
本文介紹了使用Laravel框架如何開發一個基本的在線投票系統。通過配置環境、創建模型、遷移和控制器以及編寫視圖和路由,我們實現了基本的投票功能。您可以在此基礎上進一步擴展和完善系統,例如增加用戶鑒權、展示投票結果等功能。希望這篇文章能對您的Laravel開發之旅有所幫助。

(注:以上代碼示例僅為參考,請根據實際情況做適當調整。)

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享