PHP laravel系列之數據庫

1、數據庫簡介

Laravel 對主流數據庫系統鏈接和查詢都提供了很好的支持,尤爲是流暢的查詢語句構造器。php

Laravel 支持四種類型的數據庫:
- MySQL
- Postgres
- SQLite
- SQL Server
本系列教程選用了 mysql
Laravel 應用程序的數據庫配置文件放置在 config/database.php 文件中。css

在這個配置文件內你能夠定義全部的數據庫鏈接,以及指定默認使用哪一個鏈接。在此文件內提供了全部支持的數據庫系統示例。mysql

默認狀況下,Laravel 的 環境配置 示例會使用 Laravel Homestead。laravel

對於 Laravel 開發來講這是一個至關便利的本地虛擬機。固然你也能夠根據需求來隨時修改本機端的數據庫設置。web

2、數據庫配置sql

若是你使用 homestead ,數據庫應該在第二個實驗就配置好了(本地搭建開發環境的狀況),若是你使用實驗樓的在線環境,還須要手動配置一下數據庫。數據庫

首先,啓動 mysql 數據庫,打開命令行,輸入如下指令:bash

sudo service mysql start

而後登錄 mysql,用戶名 root 密碼爲空。markdown

mysql -u root -p

登錄後會進入 mysql 的命令行,以下:
這裏寫圖片描述框架

在mysql的命令行中完成後續操做。

建立一個數據庫,命名爲myweb:

create database myweb;

使用以下命令能夠查看當前已經存在的數據庫:

show databases;

效果圖以下:

此處輸入圖片的描述
這裏寫圖片描述
而後按 ctrl+c 退出 mysql 命令行。

打開咱們的工程代碼,找到根目錄下的 .env 文件。

增長代碼以下:
.env

DB_HOST=localhost
DB_DATABASE=myweb
DB_USERNAME=root
DB_PASSWORD=

增長後:
這裏寫圖片描述
到此,數據庫環境配置完成!

3、數據庫遷移

若是你使用過 Git 的話,你必定對代碼的版本控制很是熟悉。

Laravel 中的數據庫遷移就像是數據庫的版本控制系統,他可讓你的團隊輕鬆修改並共享應用程序的數據庫結構,遷移一般會搭配上 Laravel 的數據庫結構構造器來讓你方便地構建數據庫結構。

遷移文件存放在 database/migrations 文件夾內,Laravel 默認寫好了兩個遷移文件,咱們能夠看一下這兩個文件。

看名字就能夠知道,這兩個遷移文件一個建立了一張 users 數據表,一個建立了一張 password_resets 數據表。

打開 2014_10_12_000000_create_users_table.php (前邊的數字表明瞭建立時間):
database/migrations/XXX_create_users_table.php

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration {
    /** * Run the migrations. * * @return void */
    public function up() {
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->string('password', 60);
            $table->rememberToken();
            $table->timestamps();
        });
    }

    /** * Reverse the migrations. * * @return void */
    public function down() {
        Schema::drop('users');
    }
}

一個遷移類會包含兩個方法:up() 和 down() :
up() 方法可爲數據庫添加新的數據表、字段或索引
down() 方法則是 up 方法的逆操做。
你能夠在這兩個方法中使用 Laravel 數據庫結構構造器來建立以及修改數據表。

好比上面建立 users 的代碼:

Schema::create('users', function (Blueprint $table) {
            $table->increments('id'); //建立遞增字段‘id’
            $table->string('name'); //建立字符串字段‘name’
            $table->string('email')->unique(); //建立惟一字符串字段‘email’
            $table->string('password', 60); //建立字符串字段‘password’ 最大字符數60
            $table->rememberToken(); //建立記住密碼字段
            $table->timestamps(); //建立時間戳
        });

關於數據庫結構構造器,可查閱官方文檔。

4、運行遷移

一旦你寫好了遷移文件,就能夠經過一行命令來運行遷移。

首先進入項目位置:

cd ~/Code/myweb

運行遷移:

php artisan migrate

能夠看到輸出了執行信息:

這裏寫圖片描述

而後進入 mysql 查看一下數據庫:(我是直接mysql語句進的)

mysql -u root -p

進入 myweb 數據庫:(我試驗的時候是建立在了homestead裏面了,多是我以前的配置緣由,由於以前的homestead.yaml裏面配置了,應該是吧!!!)

use myweb;

查看全部的數據表:

show tables;

能夠看到 users 數據表已經被建立了。

這裏寫圖片描述

查看 users 表結構:

desc users;

這裏寫圖片描述
能夠看到 users 這張表的結構也已經嚴格按照咱們的遷移文件設置好了,按 ctrl+c 退出 mysql 命令行。

5、遷移回滾

就像 Git 的回滾代碼同樣,Laravel 的數據遷移也能夠回滾。

進入項目代碼,執行回滾:

cd ~/Code/myweb
php artisan migrate:rollback

這裏寫圖片描述

提示回滾成功,因此如今 users 和 password_resets 表應該已經被刪除了,咱們進入 mysql 查看一下:

mysql -u root -p
use myweb;
show tables;

這裏寫圖片描述
能夠看到,數據表被成功刪除,按 ctrl+c 退出 mysql 命令行。

6、生成遷移

以 Laravel 默認爲咱們寫好的遷移文件爲例,咱們也能夠生成遷移。

在代碼目錄下使用 artisan 生成遷移:

php artisan make:migration create_articles_table

能夠看到 database/migrations 目錄下生成了對應的遷移文件:
修改後執行遷移就能夠對數據庫進行想要的操做了。

7、小結

對laravel的數據庫的一些簡單操做進行了瞭解,不難,無非就是框架裏寫好的一些數據庫的基本操做,以前有點數據庫的基礎知識理解起來不難,不過這裏個人數據庫不能經過語句mysql -u root -p只能經過mysql直接進是什麼鬼,呃呃呃

參考:實驗樓

相關文章
相關標籤/搜索