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 命令行。
就像 Git 的回滾代碼同樣,Laravel 的數據遷移也能夠回滾。
進入項目代碼,執行回滾:
cd ~/Code/myweb
php artisan migrate:rollback
提示回滾成功,因此如今 users 和 password_resets 表應該已經被刪除了,咱們進入 mysql 查看一下:
mysql -u root -p
use myweb;
show tables;
能夠看到,數據表被成功刪除,按 ctrl+c 退出 mysql 命令行。
以 Laravel 默認爲咱們寫好的遷移文件爲例,咱們也能夠生成遷移。
在代碼目錄下使用 artisan 生成遷移:
php artisan make:migration create_articles_table
能夠看到 database/migrations 目錄下生成了對應的遷移文件:
修改後執行遷移就能夠對數據庫進行想要的操做了。
對laravel的數據庫的一些簡單操做進行了瞭解,不難,無非就是框架裏寫好的一些數據庫的基本操做,以前有點數據庫的基礎知識理解起來不難,不過這裏個人數據庫不能經過語句mysql -u root -p只能經過mysql直接進是什麼鬼,呃呃呃
參考:實驗樓