ホームページ >PHPフレームワーク >Laravel >Laravelを使ったオンライン投票システムの開発方法

Laravelを使ったオンライン投票システムの開発方法

WBOY
WBOYオリジナル
2023-11-02 18:31:561309ブラウズ

Laravelを使ったオンライン投票システムの開発方法

Laravel を使用してオンライン投票システムを開発する方法

はじめに:
インターネットの発展に伴い、ますます多くのことがオンラインで完了できるようになりました。投票する。オンライン投票システムは、多数のユーザーからの意見やフィードバックを便利かつ効率的に収集できます。この記事では、Laravel フレームワークを使用して基本的なオンライン投票システムを開発する方法を紹介し、具体的なコード例を示します。

1. 環境セットアップと Laravel のインストール:

  1. PHP と Composer がマシンにインストールされていることを確認します。インストールされていない場合は、まずインストールしてください。
  2. コマンドラインウィンドウを開き、Composer を使用して Laravel をインストールします。
    composer global require laravel/installer
  3. インストールが完了したら、次のコマンドを入力します。作成するコマンドライン 新しい Laravel プロジェクト:
    laravel new votesystem
  4. プロジェクト ディレクトリを入力します:
    cd votesystem
  5. Laravel 開発サーバーを起動します:
    php Artisanserve
  6. ブラウザを開いて http://localhost:8000 にアクセスします。Laravel のウェルカム ページが表示された場合は、 、環境が正常にセットアップされたことを意味します。

2. データベースの準備:

  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 という名前のデータベースを作成します。

3. 投票関連のモデル、移行、コントローラーを作成します:

  1. コマンド ラインに次のコマンドを入力して、Poll モデルを作成し、対応するデータ移行ファイル:
    php professional make:model Poll -m
  2. 生成された移行ファイルで、polls テーブルのフィールドを定義します。 :

    public function up()
    {
        Schema::create('polls', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->timestamps();
        });
    }
  3. データベース移行の実行:
    php 職人移行
  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' => '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. モデルと対応するデータ移行ファイルの作成:
  7. php 職人 make:model オプション-m
    生成された
  8. Option
  9. 移行ファイルで、

    options テーブルのフィールドを定義します:

    public function up()
    {
        Schema::create('options', function (Blueprint $table) {
            $table->id();
            $table->unsignedBigInteger('poll_id');
            $table->string('name');
            $table->timestamps();
        });
    }
    データベース移行の実行:

  10. php 職人移行

  11. Poll
  12. モデルに、

    Option モデルの関連付けを追加します:

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

    IV. ビューとルートの作成:

    resources/views
  1. ディレクトリに、## という名前のフォルダーを作成します。 #polls

    を作成し、その中に create.blade.php ビュー ファイルを作成します: <pre class='brush:php;toolbar:false;'>&lt;form action=&quot;{{ route('poll.store') }}&quot; method=&quot;POST&quot;&gt; @csrf &lt;label for=&quot;title&quot;&gt;标题:&lt;/label&gt; &lt;input type=&quot;text&quot; name=&quot;title&quot;&gt; &lt;label for=&quot;options&quot;&gt;选项:&lt;/label&gt; &lt;ul id=&quot;options&quot;&gt; &lt;li&gt; &lt;input type=&quot;text&quot; name=&quot;options[]&quot;&gt; &lt;/li&gt; &lt;/ul&gt; &lt;button id=&quot;add-option&quot; type=&quot;button&quot;&gt;添加选项&lt;/button&gt; &lt;button type=&quot;submit&quot;&gt;提交&lt;/button&gt; &lt;/form&gt; &lt;script&gt; document.getElementById('add-option').addEventListener('click', function() { var option = document.createElement('li'); option.innerHTML = '&lt;input type=&quot;text&quot; name=&quot;options[]&quot;&gt;'; document.getElementById('options').appendChild(option); }); &lt;/script&gt;</pre>at

    routes/web.php
  2. ファイル、次のルートを追加します:
  3. Route::resource('poll', 'PollController');

    コマンド ラインで次のコマンドを実行してルート キャッシュを更新します:

    php Artisan Route:cache

  4. #5. テスト:
  5. ブラウザを開いて、
http://localhost:8000/poll/create

にアクセスします。

    投票タイトルとオプションを入力し、「オプションを追加」ボタンをクリックするとオプションが動的に追加されます。
  1. 入力が完了したら、[送信] ボタンをクリックすると、システムが投票をデータベースに保存し、投票の詳細ページに移動します。
  2. 結論:
  3. この記事では、Laravel フレームワークを使用して基本的なオンライン投票システムを開発する方法を紹介します。環境を構成し、モデル、移行とコントローラーを作成し、ビューとルートを作成することで、基本的な投票機能を実装しました。これをベースに、ユーザー認証や投票結果の表示などの機能追加など、システムのさらなる拡張・改善が可能です。この記事があなたのLaravel開発の旅に役立つことを願っています。
  4. (注: 上記のコード例は参考用です。実際の状況に応じて適切に調整してください。)

以上がLaravelを使ったオンライン投票システムの開発方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。