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 | closure nhận đối tượng Blueprint có 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 | closure nhận đối tượng Blueprint mà 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']);