Laravel을 사용하여 온라인 투표 시스템을 개발하는 방법
소개:
인터넷의 발전으로 투표를 포함하여 점점 더 많은 일을 온라인으로 할 수 있게 되었습니다. 온라인 투표 시스템은 다수의 사용자로부터 편리하고 효율적으로 의견과 피드백을 수집할 수 있습니다. 이 글에서는 Laravel 프레임워크를 사용하여 기본 온라인 투표 시스템을 개발하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.
1. 환경 설정 및 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
Laravel 개발 서버 시작: php artisan Serve
브라우저를 열고 http://localhost:8000
을 방문하세요. Laravel의 환영 페이지가 보이면 환경이 성공적으로 설정되었음을 의미합니다.
.env
파일을 열고 데이터베이스 연결 정보를 구성합니다. 다음 줄을 수정합니다. 🎜rrreee🎜🎜 voting_system
이라는 데이터베이스를 만듭니다. 🎜🎜🎜3. 투표 관련 모델, 마이그레이션 및 컨트롤러 생성: 🎜🎜🎜명령줄에 다음 명령을 입력하여 Poll
모델 및 해당 데이터 마이그레이션 파일을 생성합니다: 🎜php artisan make:model Poll -m
🎜🎜🎜생성된 마이그레이션 파일에서 polls
테이블의 필드를 정의합니다: 🎜rrreee🎜🎜 데이터베이스 마이그레이션 실행: 🎜php artisan migration🎜🎜🎜<code>PollController
컨트롤러를 만들고 create
및 store
메서드를 추가합니다. 🎜rrreee🎜🎜🎜 in PollController , <code>create
및 store
메소드 구현을 추가하여 투표 생성 및 저장을 용이하게 합니다. 🎜rrreee🎜🎜 Option
모델 생성 및 해당 데이터 마이그레이션 파일: 🎜php artisan make:model Option -m
🎜🎜🎜생성된 Option
마이그레이션 파일에서 options
테이블을 정의합니다. 필드: 🎜rrreee🎜🎜 데이터베이스 마이그레이션 실행: 🎜php artisan migration
🎜🎜🎜 Poll
모델에서 Option
모델과의 연결을 추가합니다. 관계: 🎜rrreee🎜🎜🎜4. 보기 및 경로 만들기: 🎜🎜🎜🎜 resources/views
디렉터리에 polls
라는 폴더를 만들고 를 만듭니다. create.blade.php
파일 보기: 🎜rrreee🎜🎜🎜routes/web.php
파일에 다음 경로를 추가합니다. 🎜rrreee🎜🎜명령줄에서 다음 명령을 실행합니다. 경로 캐시를 새로 고치려면: 🎜php artisan Route:cache
🎜🎜🎜5. 테스트: 🎜🎜🎜브라우저를 열고 http://localhost:8000/poll/create를 방문하세요. 코드>. 🎜🎜투표 제목과 옵션을 입력하고 "옵션 추가" 버튼을 클릭하면 옵션이 동적으로 추가됩니다. 🎜🎜입력을 완료한 후 "제출" 버튼을 클릭하면 시스템이 투표를 데이터베이스에 저장하고 투표 세부 정보 페이지로 이동합니다. 🎜🎜🎜결론: 🎜이 글에서는 Laravel 프레임워크를 사용하여 기본적인 온라인 투표 시스템을 개발하는 방법을 소개합니다. 환경을 구성하고 모델, 마이그레이션 및 컨트롤러를 생성하고 뷰와 경로를 작성하여 기본 투표 기능을 구현했습니다. 이를 기반으로 사용자 인증, 투표 결과 표시 등의 기능을 추가하는 등 시스템을 더욱 확장하고 개선할 수 있습니다. 이 글이 여러분의 Laravel 개발 여정에 도움이 되기를 바랍니다. 🎜🎜(참고: 위 코드 예제는 참고용이므로 실제 상황에 따라 적절하게 조정하시기 바랍니다.)🎜
위 내용은 Laravel을 사용하여 온라인 투표 시스템을 개발하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!