Laravel 18 :Tạo dữ liệu mẫu với Seeding

0
222

khi chúng ta tạo xong CSDL (Tạo bảng và quản lý bảng bằng migration). Bây giờ chúng ta cần có một số lượng dữ liệu  để hiển thị lên website của chúng ta, thay vì cách nhập tay thủ công thông thường vừa tốn thời gian vừa tốn công thì Laravel hỗ trợ chúng ta Seeder để nhanh chóng tạo dữ liệu , nhanh chóng để phát triển tính năng của chúng ta.

Điều cần biết  query buider: 

Seeding là gì?

-Seeding hay còn gọi là seeder,seed,.. thực ra nó là một class chứa code để tạo ra các dữ liệu mẫu cho database một cách nhanh chóng trong quá trình xây dựng web.

-Bên Trong Seeder chúng ta có thể viết code của Query builder.

Cấu trúc thư mục

Tất cả các seed class được đặt trong thư mục database/seeds. trong thư mục này đã có sẵn file DataTableSeeder.php

Insert dữ liệu bằng Seeder

Sử dụng seeder mặc định.

-Mặc định trong laravel có cung cấp cho chúng ta một DatabaseSeeder.php trong thư mục database/seeds/ có code sẵn như sau:

sau đó chúng ta viết code của Query Builder vào đó.

VD: Mình sẽ thêm dữ liệu cho bảng users (name,full,email,password) như sau:

Và để chạy nó chúng ta sẽ dùng lệnh.

 

-Tuy nhiên thông thường khi làm dự án thực tế thì chúng ta sẽ không lên làm như thế, bởi vì như thế sẽ rất khó quản lý, nên chúng ta sẽ phải chia nhỏ ra từng file seeder riêng biệt mỗi file đảm nhiệm 1 chức năng thêm vào bảng khác nhau.

Tạo seeder

-Để tạo Seeder trong Laravel chúng ta dùng lệnh:

 

-Với seedName: là tên của seed các bạn muốn tạo (nên đặt tên có ý nghĩa để sau này dễ quản lý).

VD: php artisan make:seed Users

để quản lý các dữ liệu liên quan đến Users

-Sau đó chúng ta vào database/seeds sẽ thấy một file Users.php có nội dung như sau:

-Giờ chúng ta chỉ cần chèn code Query Builder vào hàm run như VD trên là được.

-Tiếp đó chúng ta sẽ có hai cách chạy:

  • Dùng lệnh: php artisan db:seed --class=Users
  • Vào file DatabaseSeeder.php thêm đoạn $this->call(Users::class);  ( trong file DatabaseSeeder.php chúng ta có thể gọi nhiều seeder nhé)và chúng ta lại dùng lệnh php artisan db:seed

như này nè:

Chúc mọi người học tập tốt

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây