Gói kích hoạt hỗ trợ khóa tổng hợp trên Eloquent Models
Cài đặt
Cài đặt nó với nhà soạn nhạc
composer require thiagoprz/eloquent-composite-key
Cách sử dụng
Xác định khóa chính dưới dạng một mảng và sử dụng đặc điểm HasCompositeKey trên lớp mô hình của bạn
Using primary keys to find records:
________1The main idea of this package is to allow Laravel projects use composite keys on models despite Eloquent not supporting them officially [see //laravel.com/docs/8.x/eloquent#composite-primary-keys].
License
MIT
Nó cung cấp một đặc điểm có thể được sử dụng trong các lớp mô hình của Laravel để xác định nhiều thuộc tính sẽ được sử dụng làm khóa chính
Tên của các thuộc tính khóa chính phải được xác định trong các lớp mô hình dưới dạng một mảng được gán cho một biến lớp được bảo vệ của lớp chính
tháng 3 năm 2021
Số 10Thường là các ứng dụng cơ sở dữ liệu bảng để lưu trữ thông tin, xác định 1 trường có giá trị duy nhất trong tất cả các bản ghi để làm khóa truy cập dữ liệu bản ghi nhanh hơn
Tuy nhiên, trong một số ứng dụng nhất định, có nhu cầu sử dụng nhiều hơn một trường bảng làm khóa giá trị duy nhất để truy cập các bản ghi bảng nhanh hơn
Gói này cung cấp một đặc điểm có thể được sử dụng với các đối tượng mô hình của Laravel để xác định trường nào sẽ được sử dụng làm khóa chính bao gồm các giá trị của nhiều trường
Manuel Lemos
đề cử. 7x
Gói kích hoạt hỗ trợ khóa tổng hợp trên Eloquent Models
Cài đặt
Cài đặt nó với nhà soạn nhạc
composer require thiagoprz/eloquent-composite-key
Cách sử dụng
Xác định khóa chính dưới dạng một mảng và sử dụng đặc điểm HasCompositeKey trên mô hình của bạn
class User extends Model
{
use HasCompositeKey;
...
protected $primaryKey = ['firstKey', 'secondKey'];
...
}
Ý tưởng của gói này là cho phép các mô hình hùng hồn sử dụng các khóa tổng hợp mặc dù Eloquent không hỗ trợ chính thức [xem https. // ấu trùng. com/docs/8. x/eloquent#composite-primary-keys]
Lớp Laravel
Schema::rename[$from, $to];
6 cung cấp một cách thức bất khả tri cơ sở dữ liệu để thao tác với các bảng. Nó hoạt động tốt với tất cả các cơ sở dữ liệu được Laravel hỗ trợ và có API thống nhất trên tất cả các hệ thống nàyTạo và xóa bảng
Để tạo một bảng cơ sở dữ liệu mới, phương pháp
Schema::rename[$from, $to];
7 được sử dụngSchema::create['users', function[$table]
$table->increments['id'];
Đối số đầu tiên được truyền cho phương thức
Schema::rename[$from, $to];
8 là tên của bảng và đối số thứ hai là Schema::rename[$from, $to];
9 sẽ nhận một đối tượng Schema::connection['foo']->create['users', function[$table]
$table->increments['id'];
0 có thể được sử dụng để xác định bảng mớiĐể đổi tên một bảng cơ sở dữ liệu hiện có, có thể sử dụng phương pháp
Schema::connection['foo']->create['users', function[$table]
$table->increments['id'];
1Schema::rename[$from, $to];
Để chỉ định kết nối nào sẽ diễn ra hoạt động lược đồ, hãy sử dụng phương thức
Schema::connection['foo']->create['users', function[$table]
$table->increments['id'];
2Schema::connection['foo']->create['users', function[$table]
$table->increments['id'];
Để bỏ một bảng, bạn có thể sử dụng phương pháp
Schema::connection['foo']->create['users', function[$table]
$table->increments['id'];
3Schema::dropIfExists['users'];
Thêm cột
Để cập nhật một bảng hiện có, chúng ta sẽ sử dụng phương thức
Schema::connection['foo']->create['users', function[$table]
$table->increments['id'];
4Schema::table['users', function[$table]
Trình tạo bảng chứa nhiều loại cột mà bạn có thể sử dụng khi tạo bảng của mình
LệnhMô tảSchema::connection['foo']->create['users', function[$table]
$table->increments['id'];
5Tăng ID bằng cách sử dụng tương đương "số nguyên lớn". Schema::connection['foo']->create['users', function[$table]
$table->increments['id'];
6BIGINT tương đương với bảngSchema::connection['foo']->create['users', function[$table]
$table->increments['id'];
7BLOB tương đương với bảng_______7_______8BOOLEAN tương đương với bảngSchema::connection['foo']->create['users', function[$table]
$table->increments['id'];
9CHAR tương đương với độ dàiSchema::dropIfExists['users'];
0DATE tương đương với bảngSchema::dropIfExists['users'];
1DATETIME tương đương với bảngSchema::dropIfExists['users'];
2DECIMAL tương đương với độ chính xác và tỷ lệSchema::dropIfExists['users'];
3DOUBLE tương đương với độ chính xác, tổng cộng 15 chữ số trong bảng và 8 chữ số sau dấu thập phân tương đương với_______4AT___13_________4LOẠI3____ . Schema::dropIfExists['users'];
7INTEGER equivalent to the tableSchema::dropIfExists['users'];
8LONGTEXT equivalent to the tableSchema::dropIfExists['users'];
9MEDIUMINT equivalent to the tableSchema::table['users', function[$table]
0MEDIUMTEXT equivalent to the tableSchema::table['users', function[$table]
1Adds INTEGER Schema::table['users', function[$table]
2 and STRING Schema::table['users', function[$table]
3Schema::table['users', function[$table]
4Same as Schema::table['users', function[$table]
5, except allows NULLsSchema::table['users', function[$table]
6SMALLINT equivalent to the tableSchema::table['users', function[$table]
7TINYINT equivalent to the tableSchema::table['users', function[$table]
8Adds deleted_at column for soft deletesSchema::table['users', function[$table]
9VARCHAR equivalent column$table->string['name']->after['email'];
0VARCHAR equivalent with a length$table->string['name']->after['email'];
1TEXT equivalent to the Sử dụng Sau Trên MySQL
Nếu bạn đang sử dụng cơ sở dữ liệu MySQL, bạn có thể sử dụng phương thức
Schema::table['users', function[$table]
$table->renameColumn['from', 'to'];
0 để chỉ định thứ tự của các cột$table->string['name']->after['email'];
Đổi tên cột
Để đổi tên một cột, bạn có thể sử dụng phương pháp
Schema::table['users', function[$table]
$table->renameColumn['from', 'to'];
1 trên Schema builder. Trước khi đổi tên cột, hãy đảm bảo thêm phần phụ thuộc Schema::table['users', function[$table]
$table->renameColumn['from', 'to'];
2 vào tệp Schema::table['users', function[$table]
$table->renameColumn['from', 'to'];
3 của bạnSchema::table['users', function[$table]
$table->renameColumn['from', 'to'];
Ghi chú. Đổi tên loại cột
4 không được hỗ trợ
Schema::table['users', function[$table]
$table->renameColumn['from', 'to'];
thả cột
Để thả một cột, bạn có thể sử dụng phương pháp
Schema::table['users', function[$table]
$table->renameColumn['from', 'to'];
5 trên Schema builder. Trước khi loại bỏ một cột, hãy nhớ thêm phần phụ thuộc Schema::table['users', function[$table]
$table->renameColumn['from', 'to'];
2 vào tệp Schema::table['users', function[$table]
$table->renameColumn['from', 'to'];
3 của bạnXoá một cột khỏi bảng cơ sở dữ liệu
Schema::table['users', function[$table]
$table->dropColumn['votes'];
Xoá nhiều cột từ một bảng cơ sở dữ liệu
Schema::table['users', function[$table]
$table->dropColumn[array['votes', 'avatar', 'location']];
kiểm tra sự tồn tại
Kiểm tra sự tồn tại của bảng
Bạn có thể dễ dàng kiểm tra sự tồn tại của một bảng hoặc cột bằng cách sử dụng các phương pháp
Schema::table['users', function[$table]
$table->renameColumn['from', 'to'];
8 và Schema::table['users', function[$table]
$table->renameColumn['from', 'to'];
9if [Schema::hasTable['users']]
Kiểm tra sự tồn tại của các cột
Schema::rename[$from, $to];
0Thêm chỉ mục
Trình tạo lược đồ hỗ trợ một số loại chỉ mục. Có hai cách để thêm chúng. Đầu tiên, bạn có thể xác định chúng một cách trôi chảy trên định nghĩa cột hoặc bạn có thể thêm chúng một cách riêng biệt
Schema::rename[$from, $to];
1Hoặc, bạn có thể chọn thêm các chỉ mục trên các dòng riêng biệt. Dưới đây là danh sách tất cả các loại chỉ mục có sẵn
LệnhMô tảSchema::table['users', function[$table]
$table->dropColumn['votes'];
0Thêm khóa chínhSchema::table['users', function[$table]
$table->dropColumn['votes'];
1Thêm khóa tổng hợpSchema::table['users', function[$table]
$table->dropColumn['votes'];
2Thêm chỉ mục duy nhấtSchema::table['users', function[$table]
$table->dropColumn['votes'];
3Thêm chỉ mục cơ bảnKhóa ngoại
Laravel cũng cung cấp hỗ trợ để thêm các ràng buộc khóa ngoại vào bảng của bạn
Schema::rename[$from, $to];
2Trong ví dụ này, chúng tôi đang nói rằng cột
Schema::table['users', function[$table]
$table->dropColumn['votes'];
4 tham chiếu cột Schema::table['users', function[$table]
$table->dropColumn['votes'];
5 trên bảng Schema::table['users', function[$table]
$table->dropColumn['votes'];
6. Đảm bảo tạo cột khóa ngoại trướcBạn cũng có thể chỉ định các tùy chọn cho hành động "xóa" và "cập nhật" của ràng buộc
Schema::rename[$from, $to];
3Để xóa khóa ngoại, bạn có thể sử dụng phương thức
Schema::table['users', function[$table]
$table->dropColumn['votes'];
7. Một quy ước đặt tên tương tự được sử dụng cho các khóa ngoại như được sử dụng cho các chỉ mục khácSchema::rename[$from, $to];
4Ghi chú. Khi tạo khóa ngoại tham chiếu đến số nguyên tăng dần, hãy nhớ luôn đặt cột khóa ngoại là
8
Schema::table['users', function[$table]
$table->dropColumn['votes'];
Giảm chỉ số
Để xóa một chỉ mục, bạn phải chỉ định tên của chỉ mục. Laravel mặc định gán một tên hợp lý cho các chỉ mục. Chỉ cần nối tên bảng, tên của cột trong chỉ mục và loại chỉ mục. Dưới đây là một số ví dụ