Я пытаюсь выяснить, если кто-то знает способ выполнить эту задачу. Я хочу попытаться сказать, сколько ролей каждого типа будет добавлено для пользователей. Таким образом, я могу сказать, что хочу только одну другую роль № 4 и 2 роли № 3, а остальные — одну. Я уверен, что будет какая-то дополнительная логика, но не уверен, как что-то подобное должно быть написано.
<?php
use Illuminate\Database\Seeder;
// Composer: "fzaninotto/faker": "v1.3.0"use Faker\Factory as Faker;
use App\User;
class UsersTableSeeder extends Seeder {
public function run()
{
// use the factory to create a Faker\Generator instance
$faker = Faker::create();
$roleIds = App\Role::lists('id');
User::create([
'first_name' => 'Me',
'last_name' => 'Me',
'username' => 'me',
'email' => '[email protected]',
'password' => 'secret',
'active' => 1,
'role_id' => 1
]);
foreach(range(2, 100) as $index) {
User::create([
'first_name' => $faker->firstName,
'last_name' => $faker->lastName,
'username' => str_replace('.', '_', $faker->unique()->userName),
'email' => $faker->email,
'password' => $faker->word,
'active' => $faker->boolean($chanceOfGettingTrue = 90),
'role_id' => $faker->randomElement($roleIds)
]);
}
}
}
Вы можете попытаться использовать разные foreach для определенного количества role_id и фиксировать id в каждом foreach в зависимости от того, что вам нужно.
<?php
use Illuminate\Database\Seeder;
// Composer: "fzaninotto/faker": "v1.3.0"use Faker\Factory as Faker;
use App\User;
class UsersTableSeeder extends Seeder {
public function run()
{
// use the factory to create a Faker\Generator instance
$faker = Faker::create();
$roleIds = App\Role::lists('id');
User::create([
'first_name' => 'Me',
'last_name' => 'Me',
'username' => 'me',
'email' => '[email protected]',
'password' => 'secret',
'active' => 1,
'role_id' => 1
]);
foreach(range(1, 2) as $index) {
User::create([
'first_name' => $faker->firstName,
'last_name' => $faker->lastName,
'username' => str_replace('.', '_', $faker->unique()->userName),
'email' => $faker->email,
'password' => $faker->word,
'active' => $faker->boolean($chanceOfGettingTrue = 90),
'role_id' => 1
]);
}
foreach(range(1, 3) as $index) {
User::create([
'first_name' => $faker->firstName,
'last_name' => $faker->lastName,
'username' => str_replace('.', '_', $faker->unique()->userName),
'email' => $faker->email,
'password' => $faker->word,
'active' => $faker->boolean($chanceOfGettingTrue = 90),
'role_id' => 2
]);
}
foreach(range(2, 100) as $index) {
User::create([
'first_name' => $faker->firstName,
'last_name' => $faker->lastName,
'username' => str_replace('.', '_', $faker->unique()->userName),
'email' => $faker->email,
'password' => $faker->word,
'active' => $faker->boolean($chanceOfGettingTrue = 90),
'role_id' => rand(3,5)
]);
}
}
}
Других решений пока нет …