Danh sách Tutorial

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


Trong bài viết trước mình đã hướng dẫn các bạn tạo xác thực Laravel Auth và UI. Các bạn hoàn toàn có thể tạo user từ trang đăng ký của Laravel. Tuy nhiên nếu nó là 1 sản phẩm hoàn chỉnh, thì khi đưa lên môi trường production thì lấy đâu ra user đăng nhập để đăng ký User. Chẳng lẽ lại import từ database? Trong trường hợp này cách thông thường là chúng ta chạy script tạo 1 user mặc định – thường là user admin. Trong laravel bạn có thể dễ dàng làm điều đó với artisan command và Seeder.

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

Tạo User mặc định sử dụng Laravel Seeder

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

php artisan make:seeder UserSeeder

Bước 2: Sử file database/seeders/UserSeeder.php vừa tạo ra.

<?php

namespace Database\Seeders;

use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;

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

Đoạn code trên sẽ tạo ra user có thông tin đăng nhập là admin@vinasupport.com/123456.

Bước 3: Sửa file database/seeders/DatabaseSeeder.php để call file vừa tạo

<?php

namespace Database\Seeders;

// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;

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

Bước 4: Chạy command artisan để seed dữ liệu vào database.

php artisan db:seed --class=UserSeeder

Kết quả:

SHARE

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web