Bài 6: Tạo dữ liệu mẫu với Seeding – Học lập trình Laravel

Trang chủ » Training » Bài 6: Tạo dữ liệu mẫu với Seeding – Học lập trình Laravel
28/02/2022 Training 184 viewed

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:
  1. Dùng lệnh: php artisan db:seed –class=Users
  2. 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ệnh php artisan db:seed
Chia sẻ:
Tags:
TOP HOME