vue.js와 laavel을 이용한 설문조사 사이트 만들기(Laavel 준비편)

14978 단어 LaravelVue.js

카탈로그


몇 차례에 걸쳐 기재했다.
개요
준비 편(Vue.js 프로젝트 초기화 등)
vue.js편(vue.js,vuex의 소개)
Laavel 준비 편(Laavel에서 사용하는 기능 등을 소개)<<---이 글
라벨 실장편(라벨 실장시 소스와 구성 등을 활용한 소개)

먼저


지난번 보도vuejs는 프런트 구축을 소개했다.
나는 여기서부터 서버의 제작과 서버와 프론트 데스크의 연합을 기록하고 싶다.
에 업로드되었습니다.
하지만 그전까지는 라벨의 준비편으로 라벨을 움직일 때까지 써야 한다는 생각이 들었다.

준비(프로젝트 초기화 등)


이번에는 라벨로 이 설문지를 제작할 서버측입니다.
일단 라벨 프로젝트부터 해.
터미널에서 프로젝트를 제작할 수 있습니다.
composer create-project laravel/laravel test
이 명령은 프로젝트를 만듭니다test.
cd test
에서 만든 테스트 폴더를 클릭하고
php artisan serve
에서 로컬 서버를 시작합니다.
Laravel development server started: <http://127.0.0.1:8000>
이런 정보가 나와야 하기 때문에 이 주소를 방문하면 라벨의 초기 화면이 나와야 한다.
GitHub

Laavel의 기능


몇 가지 Laavel의 기능을 소개합니다.
모두 이번에 사용한 물건들이다.

controller


Laavel에서 controller는 기본적인 제어 단위입니다.
php artisan make:controller TestController
이런 명령은 컨트롤러를 만들 수 있다.
TestController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class TestController extends Controller
{
    public function test(Request $request)
    {
    }
}
이렇게 컨트롤러의 내용을 기재하면 TestControllertest를 이용할 수 있다.web.php에 라우트를 기록하면 컨트롤러를 사용할 수 있습니다.
web.php
Route::post('/test', 'TestController@test');
이 예에서 /testPOST를 실시할 때TestControllertest가 호출되었다.
컨트롤러만 마음대로 만들어서 컨트롤하면 될 것 같아서요.

DB와의 연결


나는 라벨을 사용할 때 DB를 자주 사용한다고 생각한다.
자신의 환경에 따라 DB의 연결 설정을 기재하면 간단하게 연결할 수 있다.
이번에는 MAMP 환경에서 실시되었다.
DB 설정을 config/database.php에 기재합니다.
이번에는 MySQL이어서 MySQL 부분만 편집했습니다.
예를 들면 이런 느낌.
        'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '8889'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],
DB_DATABASE,DB_USERNAME,DB_PASSWORD 등의 정보는 .env 파일에 기재된다.
아마 처음부터 존재했을 거예요.env.example 이런 파일.
이 문건.env을 모방하면 됩니다.
단, .envgit 등을 넣으면 위험할 수 있으니 주의하세요.
Laavel에서 DB로의 연결 테스트는 이번에 마이그레이션을 사용했습니다.
연결 테스트만 하는 기구가 있습니까? 있으면 편리할 것 같습니다.

migration


다른 프레임워크(PHP뿐만 아니라)에도 마이그레이션이 존재하지만 Laavel도 존재한다고 생각합니다.Laravel의 이전은 지금까지 사용하지 않았지만, 이번에 사용해 보았지만, 매우 편리하고 감동적이었다.
마이그레이션이란 쉽게 말해 DB 컨텐츠를 쉽게 만들 수 있는 기능입니다.
특히 DB를 자주 등록하거나 삭제하고 싶어 간단하게 초기화하는 기능을 개발했다.
DB(초기 등록)를 초기화하거나 임의의 데이터를 등록하는 등 마이그레이션할 수 있음
이전을 제작할 때artsan의 지령을 사용하는 것이 좋습니다.
bash
php artisan make:migration create_master_table
이렇게 하면 마이그레이션에 사용할 파일을 만들 수 있습니다.
같은 파일을 만듭니다.
테이블에 대한 정의를 나열합니다.
2018_08_18_063334_create_master_table.php
    public function up()
    {
        Schema::create('masters', function (Blueprint $table) {
            $table->integer('id');
            $table->string('type');
            $table->string('answer');
            $table->integer('value')->nullable();
        });
    }
각 테이블의 열을 이렇게 정의할 수 있습니다.
이 예에서 테이블 생성2018_08_18_063334_create_master_table.phpmasters,id,type,answer열.
각각 value,int,string,string이다.
표 이름은 복수 형식이고 주요 키는 id로 Laavel에서 괜찮은 것 같습니다.

DB를 마이그레이션할 수 있습니다.

실제 마이그레이션

php artisan migrate
이렇게 하면 옮길 수 있다.
그러나 마이그레이션 후에는 테이블과 열이 작성되지만 컨텐트 데이터는 작성되지 않습니다.
내용 데이터를 만드는 기능은 결혼식이다.

seeding


artisan 명령을 사용하여 결혼식을 진행할 파일을 만들 수 있습니다.
php artisan make:seeder MasterTableSeeder
MasterTableSeeder.php
        $param = [
            'id' => 1,
            'type' => 'SelectOne',
            'answer' => 'A1',
            'value' => 0,
        ];
        DB::table('masters')->insert($param);
이렇게 임의의 데이터를 쓰면 결혼식을 수행할 때 자동으로 데이터가 생성됩니다!
나는 직관적이고 알기 쉽다고 생각한다.
int(null可)에 결혼식을 수행하고 싶다는 내용을 적었다.
DatabaseSeeder.php
    public function run()
    {
        $this->call(MasterTableSeeder::class);
        $this->call(TexIDTableSeeder::class);
        $this->call(ResultTableSeeder::class);
        $this->call(PswTableSeeder::class);
    }
이렇게 하면 DatabaseSeeder의 함수에 Seeder를 쓰면 그것을 실행할 수 있다.
혼례를 치르다
php artisan db:seed
이렇게 하면 결혼식을 집행할 수 있다.
마이그레이션과 포지셔닝을 단숨에 수행할 수도 있습니다.
php artisan migrate:refresh --seed
php artisan migrate:fresh --seed
refresh 책상 뒤집어.
fresh가 DROP 표에 있는 것 같습니다.

Eloquent


Laavel의 OR 안마기는 Eloquent라고 합니다.
이번 DB 작업은 모두 이걸 사용했습니다.
        $deleteData = Result::where('id', $id)->whereNotNull('tex_id')->get();
자세한 내용은 적혀있지 않지만 DB에 쉽게 액세스할 수 있습니다!
이 예에서는 run라는 이름의 DB 객체에 액세스합니다.Result id를 필터합니다.
이것where('id',$id)Result을 가리키며 명령줄에서 만들 수 있습니다.
bash
php artisan make:model master
이 명령은 모델을 생성합니다model.
DB에 문의할 때 모델을 조작하면 된다.
다음은 Result라는 모델의 새 데이터 등록 작업입니다.
DB에 대한 자산 부채가 진행 중이어서 운용이 가능하다는 것을 전혀 인지하지 못했다.
                        $result = new Result;
                        $result->id = $id;
                        $result->no = $key;

                        $result->answer = $question[$key]['answer'][$array_key];
                        $result->tex_id = null;

                        $result->created_at = $cur;
                        $result->updated_at = $cur;

                        $result->save();
masetr 모델 이름에 해당하는 DB 테이블입니다.
하지만 전혀 다른 이름에 대응하려면 설정Model하면 된다.
class Token extends Model
{
    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'tokens';

    public $timestamps = true;
}

다음번


나는 라벨의 구체적인 실시 방안을 설명하고 싶다.

좋은 웹페이지 즐겨찾기