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' => '[email protected]', 'password' => bcrypt('123456'), ]); } }
Đoạn code trên sẽ tạo ra user có thông tin đăng nhập là [email protected]/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ả: