เพราะทำระบบ login ใหม่เลยมีการ ลบ, เปลี่ยน password, add user ใส่ role ไปมา แถม password มันจะต่างจากตัวอื่น ๆ ที่ต้อง hash ให้ถูกด้วย มันเหนื่อย เลยทำ UsersSeeder ออกมากรอกข้อมูลในตาราง users ให้มันจบ ๆ ไป
database/seeders/UsersSeeder.php
<?php namespace Database\Seeders; use App\Models\User;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash; class UsersSeeder extends Seeder
{ /** * Run the database seeds. */ public function run () : void { // รายการ User ที่ต้องการสร้างเพื่อทดสอบระบบ $testUsers = [ [ 'name' => 'System Admin', 'email' => '[email protected]', 'role' => 'admin' ], [ 'name' => 'Accounting Manager', 'email' => '[email protected]', 'role' => 'account' ], [ 'name' => 'General Staff', 'email' => '[email protected]', 'role' => 'staff' ], [ 'name' => 'HR Manager', 'email' => '[email protected]', 'role' => 'hr' ], [ 'name' => 'General Manager', 'email' => '[email protected]', 'role' => 'manager' ], [ 'name' => 'Pitt Phunsanit', 'email' => '[email protected]', 'role' => 'admin' ], [ 'name' => 'IT Support', 'email' => '[email protected]', 'role' => 'staff' ], ]; foreach ($testUsers as $userData) { $user = User::updateOrCreate (['email' => $userData['email']], // เช็คจาก email [ 'status' => 1, 'name' => $userData['name'], 'password' => Hash::make ('password') , 'email_verified_at' => now () , 'created_at' => now () , 'updated_at' => now () , ]) ; // ถ้ารัน RoleSeeder ไปแล้ว สามารถเปิดบรรทัดนี้เพื่อผูก Role อัตโนมัติได้เลยครับ // if ($user->wasRecentlyCreated || !$user->hasRole ($userData['role'])) { // $user->assignRole ($userData['role']) ; // } } $this->command->info ('Test users for @plusmagi.com seeded successfully!') ; }
}
การใช้งาน
- เพิ่มของเก่า
php artisan migrate --seed --seeder=UsersSeeder - ลบทำใหม่ (ลบ user เก่า ๆ หมดเลย)
php artisan migrate:fresh --seed --seeder=UsersSeeder
อ่านเพิ่มเติม