Schema
Schema Builder là một class giúp chúng ta làm việc với các cơ sở dữ liệu với các hàm định sẵn.
Table
Tạo Table
Để tạo một bảng cơ sở dữ liệu mới, hãy sử dụng phương thức create trên Schema Facade.
Phương thức create chấp nhận hai đối số:
| Arguments | Type | Description | 
|---|---|---|
| $table | string | Tên của bảng | 
| $closure | closure | closurenhận đối tượngBlueprintcó thể được sử dụng để xác định bảng mới | 
schema()->create('users', function (Illuminate\Database\Schema\Blueprint $table) {
    $table->id();
    $table->string('name');
    $table->string('email');
    $table->timestamps();
});
Khi tạo bảng, bạn có thể sử dụng bất kỳ column methods nào của blueprint để xác định các cột của bảng
Kiểm tra sự tồn tại của Table / Column
Bạn có thể kiểm tra sự tồn tại của table bằng method hasTable
if (schema()->hasTable('users')) {
    //The "users" table exists...
}
Bạn có thể kiểm tra sự tồn tại của Column bằng method hasColumn
if (schema()->hasColumn('users', 'email')) {
    // The "users" table exists and has an "email" column...
}
Cập nhật Table
Phương thức table trên schema có thể được sử dụng để cập nhật các table hiện có.
Giống như phương create, phương thức bảng chấp nhận hai đối số:
| Arguments | Type | Description | 
|---|---|---|
| $table | string | Tên của bảng cần cập nhật | 
| $closure | closure | closurenhận đối tượngBlueprintmà bạn có thể sử dụng để thêm cột hoặc chỉ mục vào bảng | 
schema()->table('users', function (Illuminate\Database\Schema\Blueprint $table) {
    $table->integer('votes');
});
Đổi tên Table / Xóa Table
Để đổi tên table cơ sở dữ liệu hiện có, hãy sử dụng phương thức rename :
schema()->rename($from, $to);
| Arguments | Type | Description | 
|---|---|---|
| $from | string | Tên của bảng cần đổi | 
| $to | string | Tên mới của bảng | 
Để xóa một table hiện có, bạn có thể sử dụng các phương thức drop hoặc dropIfExists:
schema()->drop('users');
schema()->dropIfExists('users');
Column
Các loại columns có sẵn
schema Blueprint cung cấp nhiều phương thức tương ứng với các loại cột khác nhau mà bạn có thể thêm vào bảng cơ sở dữ liệu của mình. Mỗi phương pháp có sẵn được liệt kê trong bảng dưới đây:
bigIncrements()
Phương thức bigIncrements tạo cột tương đương UNSIGNED BIGINT (khóa chính) tự động tăng:
$table->bigIncrements('id');
bigInteger()
Phương thức bigInteger tạo cột tương đương BIGINT
$table->bigInteger('votes');
binary()
Phương thức binary tạo một cột tương đương BLOB:
$table->binary('photo');
boolean()
Phương thức boolean tạo cột tương đương BOOLEAN:
$table->boolean('confirmed');
char()
The char method creates a CHAR equivalent column with of a given length:
$table->char('name', 100);
dateTimeTz()
Phương thức dateTimeTz tạo cột tương đương DATETIME (có múi giờ) với độ chính xác tùy chọn (tổng digits):
$table->dateTimeTz('created_at', $precision = 0);
dateTime()
Phương thức dateTime tạo cột tương đương DATETIME với độ chính xác tùy chọn (tổng digits):
$table->dateTime('created_at', $precision = 0);
date()
Phương thức date tạo cột tương đương DATE:
$table->date('created_at');
decimal()
Phương thức decimal tạo một cột tương đương DECIMAL với độ chính xác cho trước (tổng chữ số) và tỷ lệ (chữ số thập phân):
$table->decimal('amount', $precision = 8, $scale = 2);
double()
Phương thức double tạo một cột tương đương DOUBLE với độ chính xác cho trước (tổng chữ số) và tỷ lệ (chữ số thập phân):
$table->double('amount', 8, 2);
enum()
Phương thức enum tạo một cột tương đương ENUM với các giá trị hợp lệ đã cho:
$table->enum('difficulty', ['easy', 'hard']);