Đôi khi cần phải thêm các cột mới trong bảng Laravel. Hôm nay tôi sẽ chỉ cho bạn cách thêm cột hoặc cột mới vào bảng hiện có trong Laravel migration
Hãy tưởng tượng rằng, bạn có một bảng tên là người dùng với cấu trúc bảng như thế này
Sau khi di chuyển và có dữ liệu vào bảng, bây giờ có thể bạn muốn thêm một cột mới vào bảng người dùng có tên là profile
. Để thêm một cột mới, làm mới cơ sở dữ liệu không phải là một cách lý tưởng. Trong tình huống này, bạn có thể tạo một tệp di chuyển mới để thêm một cột mới vào bảng người dùng
Thêm một cột
Để thêm một cột mới vào bảng hiện có trong Laravel, bạn cần thêm lệnh sau vào terminal
«
Trước đó
1
/
1
Kế tiếp
»
ấu trùng 5. 5 Hướng dẫn CRUD, Giới thiệu và Tổng quan về Chương trình nghị sự, Phần đào tạo Laravel – 1 DevopsSchool
«
Trước đó
1
/
1
Kế tiếp
»
Deepak Kumar
Kỹ sư phần mềm tại Cotocus Limited
Kỹ sư phần mềm toàn diện
Email - contact@DevOpsSchool. com
Bài đăng mới nhất của Deepak Kumar [xem tất cả]
- Lỗi NPM. Node Sass chưa hỗ trợ môi trường hiện tại của bạn - Ngày 10 tháng 11 năm 2020
- LỖI. sh. 1. chéo env. Quyền bị từ chối - Ngày 5 tháng 11 năm 2020
- Lỗi phiên bản gói Vue không khớp với laravel - ngày 15 tháng 9 năm 2020
Việc tạo. Migration Artisan trong Laravel [9] cho phép bạn tạo di chuyển cơ sở dữ liệu. Bạn có thể tìm thấy các tệp di chuyển kết quả là thư mục cơ sở dữ liệu/di chuyển. Sử dụng lệnh này, chúng ta có thể thêm một cột mới vào bảng [ngoài các thao tác khác]
cú pháp
Trước hết, trước tiên chúng ta hãy tạo một bảng bằng cách sử dụng make. lệnh di chuyển. Sau đây là cú pháp để tạo một bảng mới trong Laravel bằng lệnh này –
php artisan make:migration create_yourtablename_table
Ở đây, tên bảng là your_table_name. Vì vậy, chúng ta hãy tạo một bảng có tên. sinh viên
Lệnh tạo bảng sinh viên như sau
php artisan make:migration create_students_table C:\xampp\htdocs\laraveltest>php artisan make:migration create_students_table Created Migration: 2022_05_01_055549_create_students_table C:\xampp\htdocs\laraveltest>
Bây giờ, nếu bạn quan sát bên trong cơ sở dữ liệu/di chuyển, bạn có thể quan sát một lớp được tạo tự động được tạo cho sinh viên như hình bên dưới –
Lớp chứa hai phương thức up[] và down[]. up[] đảm nhiệm việc giữ lược đồ cho bảng có tên là sinh viên. Theo mặc định, id và dấu thời gian được tạo và bạn có thể thêm nhiều trường hơn theo yêu cầu
Hãy để chúng tôi thêm các trường tên và email vào phương thức up[] như bên dưới -
public function up[] { Schema::create['students', function [Blueprint $table] { $table->id[]; $table->string['name']; $table->string['email']; $table->timestamps[]; }]; }
Bây giờ, để tạo bảng. sinh viên bên trong cơ sở dữ liệu, chúng ta cần chạy lệnh sau -
php artisan migrate C:\xampp\htdocs\laraveltest>php artisan migrate Migrating: 2022_05_01_055549_create_students_table Migrated: 2022_05_01_055549_create_students_table [21.14ms] C:\xampp\htdocs\laraveltest>
Sau khi lệnh thành công, bạn sẽ có thể thấy bảng được tạo trong MySQL dưới dạng -
Thêm một cột mới vào Bảng hiện có
Bây giờ, bảng có tên “sinh viên” đã được tạo, chúng ta hãy thêm một cột vào bảng này. Ở đây chúng tôi đang thêm một cột mới có tên là địa chỉ. Lệnh để làm như vậy sẽ như sau -
php artisan make:migration add_address_to_students --table="students" C:\xampp\htdocs\laraveltest>php artisan make:migration add_address_to_students --table="students" Created Migration: 2022_05_01_061430_add_address_to_students C:\xampp\htdocs\laraveltest>
Bây giờ, nếu bạn kiểm tra tệp bên trong cơ sở dữ liệu/di chuyển. Nội dung của tệp được tạo tự động như sau
Bên trong phương thức up[], bạn có thể thêm cột mới của mình như hình bên dưới -
public function up[] { Schema::table['students', function [Blueprint $table] { $table->text['address']; }]; }
Ngoài ra còn có một phương thức down[] xử lý việc loại bỏ các cột mới được tạo. Vì vậy, hãy thêm cột địa chỉ sẽ được bỏ vào bên trong phương thức down[]. Điều này hữu ích nếu lệnh di chuyển được thực hiện lại
public function down[] { Schema::table['students', function [Blueprint $table] { $table->dropColumn['address']; }]; }
Bây giờ, hãy để chúng tôi chạy di chuyển nghệ nhân PHP để thực hiện thay đổi trên bảng. sinh viên. Lệnh này như sau -
php artisan migrate C:\xampp\htdocs\laraveltest>php artisan migrate Migrating: 2022_05_01_061430_add_address_to_students Migrated: 2022_05_01_061430_add_address_to_students [21.51ms] C:\xampp\htdocs\laraveltest>
Bây giờ hãy nhìn vào bảng. sinh viên bên trong cơ sở dữ liệu, bạn sẽ thấy cột mới được thêm vào như hình dưới đây -