>  기사  >  PHP 프레임워크  >  laravel 데이터 마이그레이션 및 Eloquent ORM에 대한 자세한 소개(코드 예제)

laravel 데이터 마이그레이션 및 Eloquent ORM에 대한 자세한 소개(코드 예제)

不言
不言앞으로
2019-01-08 11:34:173530검색

이 글은 laravel 데이터 마이그레이션과 Eloquent ORM에 대한 자세한 소개(코드 예제)를 제공합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

백엔드 개발에서 가장 일반적으로 사용되는 부분이자 중요한 부분이라고 할 수 있는 데이터베이스. Laravel은 데이터베이스와 간단하고 직관적으로 상호 작용할 수 있는 매우 실용적인 Eloquent ORM 모델 클래스를 제공합니다. 동시에 데이터 마이그레이션을 통해 데이터베이스를 관리하고 이를 팀과 공유하고 편집할 수 있습니다. 두 가지 모두에 대한 자세한 내용은 아래 설명서를 참조하세요.
다음에서는 두 가지를 모두 예로 사용합니다. 요구 사항은 사용자 검색 기록을 기록하는 것입니다. 이 예시를 실제 프로젝트에 적용하지 마세요. 이 글은 단지 예시일 뿐입니다. 실제 프로젝트는 필요에 따라 녹화되며, 저장 방식이 선택됩니다.

데이터 테이블 만들기

첫 번째 단계는 물론 데이터 테이블을 만드는 것입니다. artisan 명령을 사용하면 쉽게 모델을 생성하고 데이터를 마이그레이션할 수 있습니다. php artisan make:model Models/BrowseLog -m, -m 매개변수는 모델 생성 시 데이터 마이그레이션 파일도 생성합니다. 위 명령을 실행한 후 app/Models/BrowseLog.php 및 Database/migrations/{now_date}_create_browse_logs_table.php라는 두 개의 새로운 파일이 추가되었습니다.
다음으로 {now_date}_create_browse_logs_table.php를 편집하여 데이터 테이블을 생성합니다

/**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('browse_logs', function (Blueprint $table) {
            $table->increments('id');
            $table->ipAddress('ip_addr')->comment('ip 地址');
            $table->string('request_url', 20)->comment('请求 url');
            $table->char('city_name', 10)->comment('根据 ip 获取城市名称');
            $table->timestamps();
        });

        DB::statement("ALTER TABLE `browse_logs` comment'浏览记录表'"); // 表注释
    }

코드는 위와 같습니다. 편집이 완료된 후 php artisan migration 명령을 실행하여 마이그레이션되지 않은 모든 데이터 테이블을 생성합니다. 다음과 같습니다

laravel 데이터 마이그레이션 및 Eloquent ORM에 대한 자세한 소개(코드 예제)

개인적으로 laravel의 기본 데이터 유형이 의심스럽습니다. 예를 들어 ipAddress()의 데이터 형식은 varchar(45)입니다. 실제로 ip2long을 사용하여 이를 int로 변환하여 저장할 수 있습니다. timestamps()는 저장을 위해 타임스탬프를 사용할 수도 있습니다. 물론, laravel은 쉬운 유지 관리를 위해 접근자와 수정자를 제공합니다. 실제 프로젝트에서 직접 선택할 수 있습니다.

미들웨어 정의

모든 요청에 ​​대해 실행될 글로벌 미들웨어를 정의하세요. php artisan make:middleware BrowseLog를 실행하여 app/Http/Middleware/BrowseLog.php 파일을 생성합니다.

생성된 미들웨어를 다음과 같이 app/Http/Kernel.php에 추가합니다

laravel 데이터 마이그레이션 및 Eloquent ORM에 대한 자세한 소개(코드 예제)

Record data

마지막으로 미들웨어에서 데이터를 데이터베이스에 기록하는데, 코드는 다음과 같습니다

/**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $log = new \App\Models\BrowseLog();

        $log->ip_addr = $request->getClientIp();
        $log->request_url = $request->path();
        $log->city_name = get_city_by_ip();

        $log->save();

        return $next($request);
    }
몇 개의 링크를 방문한 후 데이터베이스로 이동하여 데이터가 정상적으로 기록되었는지 확인합니다. 이것으로 이 예제가 끝납니다.

위 내용은 laravel 데이터 마이그레이션 및 Eloquent ORM에 대한 자세한 소개(코드 예제)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제