เพราะทำระบบ 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
อ่านเพิ่มเติม