Level 104
What do you mean by a certain role to each User?
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
I have this roleuserseeder that is assigning random roles to users. How can I change this to assign a certain role to each user?
RoleUserSeeder
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use App\Models\Role;
use App\Models\User;
class RoleUserSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$roles = Role::all();
User::all()->each(function ($user) use ($roles){
$user->roles()->attach(
$roles->random(1)->pluck('id')
);
});
}
}
UserSeeder
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use App\Models\User;
use DB;
use Hash;
class UserSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table('users')->insert([
'name' => 'Registrar',
'email' => '[email protected]',
'password' => Hash::make('password'),
]);
DB::table('users')->insert([
'name' => 'Webmaster',
'email' => '[email protected]',
'password' => Hash::make('password'),
]);
DB::table('users')->insert([
'name' => 'Team',
'email' => '[email protected]',
'password' => Hash::make('password'),
]);
DB::table('users')->insert([
'name' => 'Sponsor',
'email' => '[email protected]',
'password' => Hash::make('password'),
]);
DB::table('users')->insert([
'name' => 'Pastor',
'email' => '[email protected]',
'password' => Hash::make('password'),
]);
DB::table('users')->insert([
'name' => 'Pilgrim',
'email' => '[email protected]',
'password' => Hash::make('password'),
]);
DB::table('users')->insert([
'name' => 'User',
'email' => '[email protected]',
'password' => Hash::make('password'),
]);
}
}
RoleSeeder
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use App\Models\Role;
use DB;
class RoleSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table('roles')->insert([
'name' => 'Registrar'
]);
DB::table('roles')->insert([
'name' => 'Webmaster'
]);
DB::table('roles')->insert([
'name' => 'Team'
]);
DB::table('roles')->insert([
'name' => 'Pastor'
]);
DB::table('roles')->insert([
'name' => 'Sponsor'
]);
DB::table('roles')->insert([
'name' => 'Pilgrim'
]);
DB::table('roles')->insert([
'name' => 'User'
]);
}
}
Please or to participate in this conversation.