Đây là câu lệnh viết tắt để tạo combo mvc
hướng dẫn chi tiết thư viện faker trong laravel, hướng dẫn tạo bảng bằng migration, hướng dẫn chi tiết khai báo facetory trong laravel, hướng dẫn chi tiết cách khai báo seed trong laravel
php artían make:mode NameModel -c -m -f -s
Trong đó
-c : tạo controller
-m: tạo migration
-f: tạo facetory
-s : tạo seeder
thứ tự các chữ cái có thể đặt trước hay sau đều được
nếu không thêm các chữ cái này thì lệnh chỉ tạo ra mỗi file model
Sau khi chạy lệnh trên nếu màn hình console hiện thị thông báo như hình thì chúng ta đã tạo chuỗi model, controller, migration, seeder, facetory thành công.
Mở file migation vửa tạo trong thư mục database\migration
Mình sẽ khai báo bảng dữ liệu như hình. gồm trường ID, Name, Slug, Type, Parent_id
Chạy lệnh sau để cài đặt
composer require fzaninotto/faker
Sau khi chạy lệnh trên thì ta chạy lệnh sau để cập nhật lại các thư viện mới cài
composer dump-autoload
Khai báo thư viện cần dùng
Mở file facetory trong thư mục database\facetories và khai báo các trường như sau
Các hàm $faker->text, $faker->randomElement() là các hàm có sẵn của thư viện facetory. xem tại link
Mở file seeder trong thư mục database\seeders
Khai báo models và thư viện facetory
Tiến hành khai báo nội dung file seeder như sau
Ở hàm trên ta gọi thư viện facetory thêm vào 20 bản ghi. Vì bảng này có trường parent_id nên ta xử lý bằng cách thêm bản ghi trước sau đó lặp tất cả bản ghi đã thêm để cập nhật trường parent_id.
chúng ta vẫn sử dụng hàm randomElement để chọn ngẫu nhiên 1 giá trị trong mảng khai báo trước. Ở hàm trên nếu bản ghi có id = 1 và id = 2 thì chúng ta sẽ cho parent_id = 0 để không bị xung đột parent_id
Mở file DatabaseSeeder.php trong thư mục database/seeders và khai báo như sau :
Các bạn chèn models vào sau đó dùng $this->call để gọi đến class seeder đã khai báo. xem hình minh họa
Chúng ta chạy lệnh sau
php artisan migrate:refresh --seed
Nếu không có lỗi phát sinh thì chúng ta đã thành công
Kiểm tra database để thấy dữ liệu đã thêm vào
Sau khi xem hướng dẫn viết API trong laravel và xem thêm bài viết này chúng ta có thể viết API và tạo dữ liệu tạm cho API để chúng ta test trước khi viết các module thêm dữ liệu.
Chúc bạn thành công