Ở Các phần trước mình đã giới thiệu với mọi người về Migrations với Schema Builder Nhưng vấn đề là nó mới chỉ tạo ra các cấu trúc của database còn dữ liệu thì thêm như thế nào, ở đây chắc chắn sẽ có bạn nói rằng sẽ thêm bằng phpMyadmin nhưng ở đây Laravel đã cung cấp cho chúng ta một thứ rất hay để thêm dữ liệu mẫu vào database.
1, 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 dummy data(dữ liệu mẫu) cho database trong quá trình xây dựng ứng dụng.
-Trong Seeder chúng ta có thể viết code của Query builder.
2,Sử dụng seeder.
Sử dụng seeder gốc.
-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:
<?php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
// $this->call(UsersTableSeeder::class);
}
}
Và để sử dụng nó chúng ta chỉ cần viết code của Query Builder vào đó.
VD: Mình sẽ thêm dữ liệu cho bảng users (name,email,password) như sau:
<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table('users')->insert([
'name' => str_random(10),
'email' => str_random(10).'@gmail.com',
'password' => bcrypt('secret'),
]);
}
}
Và để chạy nó chúng ta sẽ dùng lệnh.
php artisan db:seed
-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 cho từng table để quản lý.
Tạo seeder.
-Để tạo Seeder trong Laravel chúng ta dùng lệnh:
php artisan make:seed seedName
-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: Mình muốn tạo file Users.php
để quản lý dữ liệu cho bảng users.
-Đầu tiên chúng ta sẽ dùng lệnh: php artisan make:seed Users.php.
-Sau đó chúng ta vào database/seeds
sẽ thấy một file Users.php có nội dung như sau:
<?php
use Illuminate\Database\Seeder;
class Users extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
//
}
}
-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);
vào hàm run (Users có thể thay đổi bằng tên file của bạn muốn thực hiện lệnh) và chúng ta lại dùng lệnhphp artisan db:seed
3,Lời kết.
-Phần trên mình đã giới thiệu với các bạn về Seeder cơ bản, còn một số các kiến thức nâng cao về Seeder mình sẽ giới thiệu với các bạn vào một dịp khác nhé! Chúc các bạn học tốt!
Đăng ký nhận tin.
Chúng tôi chỉ gửi tối đa 2 lần trên 1 tháng. Tuyên bố không spam mail!
Nếu bạn là người có văn hóa, hãy để lại link bài viết gốc khi chia sẻ bài viết. Xin cảm ơn! nói chuyện kiểu này dễ ăn hành lắm nè
bao
5 năm trước
Ai vô ý thức thì sẽ thấy khó chịu thôi à
Vũ Thanh Tài
5 năm trước