Chia sẻ kiến thức

Hướng dẫn tạo user mặc định sử dụng Laravel Seeder

0

Ở bài trước mình đã hướng dẫn các bạn cách tạo xác thực Laravel Auth và UI. Bạn hoàn toàn có thể tạo người dùng từ trang đăng ký của Laravel. Tuy nhiên nếu là thành phẩm thì khi đưa vào sản xuất lấy đâu ra user đăng nhập để đăng ký User. Có thể nhập từ cơ sở dữ liệu? Trong trường hợp này, cách thông thường là chúng ta chạy script để tạo default user – thường là user admin. Trong laravel bạn có thể dễ dàng làm điều đó với lệnh artisan và Seeder.

Laravel Seeder là gì? Chúng tôi sẽ cập nhật trong một bài viết khác.

Tạo người dùng mặc định bằng Laravel Seeder

Bước 1: Sử dụng lệnh artisan sau để tạo file UserSeeder.php

php artisan make:seeder UserSeeder

Bước 2: Chỉnh sửa tập tin cơ sở dữ liệu/seeders/UserSeeder.php vừa được tạo.

<?php

namespace DatabaseSeeders;

use IlluminateDatabaseConsoleSeedsWithoutModelEvents;
use IlluminateDatabaseSeeder;

class UserSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run(): void
    {
        // Create admin user
        AppModelsUser::factory()->create([
            'name' => 'Admin',
            'email' => '[email protected]',
            'password' => bcrypt('123456'),
        ]);
    }
}

Đoạn mã trên sẽ tạo một người dùng có thông tin đăng nhập là [email protected]123456.

Bước 3: Chỉnh sửa tập tin cơ sở dữ liệu/seeders/DatabaseSeeder.php để gọi tập tin mới được tạo

<?php

namespace DatabaseSeeders;

// use IlluminateDatabaseConsoleSeedsWithoutModelEvents;
use IlluminateDatabaseSeeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run(): void
    {
        // AppModelsUser::factory(10)->create();
        $this->call(UserSeeder::class);
    }
}

Bước 4: Chạy lệnh artisan để đưa dữ liệu vào cơ sở dữ liệu.

php artisan db:seed --class=UserSeeder

Kết quả:

Leave a comment