lumen 使用给定数组的 faker 生成假数据

lumen generate fake data with faker from given array

我想为不同角色的用户生成虚假数据,

我的文件在下面,

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'、'superadmin'、'client'、'agent'、'engineer']

不同角色的记录

如何从给定的角色数组中获取角色的值。

你可以使用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.