我想为具有不同角色的用户生成虚假数据
我的档案在下面,
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Faker\Factory as Faker;
class InsertUserSeeder extends Seeder {
/**
* Run the database seeds.
*
* @return void
*/
public function run() {
$faker = Faker::create();
foreach (range(1, 10) as $index) {
DB::table('user')->insert([
'name' => $faker->name,
'email' => $faker->email,
'role' => 'admin',
]);
}
}
}
从上面的代码中,它将生成10个admin角色记录。
我希望生成来自[' admin',' superadmin','客户'代理',& #39;工程师']
如何从给定的角色数组中获取角色的值。
答案 0 :(得分:0)
你可以使用faker的方法randomElement($array)
来完成这样的工作:
<?php
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Faker\Factory as Faker;
class InsertUserSeeder extends Seeder {
/**
* Run the database seeds.
*
* @return void
*/
public function run() {
$faker = Faker::create();
foreach (range(1, 10) as $index) {
DB::table('user')->insert([
'name' => $faker->name,
'email' => $faker->email,
'role' => $faker->randomElement([
'admin',
'superadmin',
'client',
'agent',
'engineer',
]),
]);
}
}
}
对于可重用性,我建议使用模型工厂,而不是直接在播种机中创建模型。你可以阅读in the documentation。