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

标签 php laravel lumen faker

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

我的文件在下面,

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'] 不同角色的记录

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

最佳答案

您可以使用伪造者的方法 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 .

关于php - lumen 使用给定数组的 faker 生成假数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49553982/

相关文章:

javascript - 通过 PHP 流式传输时,Safari 中的音频持续时间总是返回无穷大

php - 拉维尔 5.1 : Calling a function from string

php - Laravel 使用错误的所有者创建日志文件

php - Laravel n+ 问题急切加载计数()

php - 如何解决 Lumen/Laravel 中的单例问题?

php - 将图像与文本合并

php - 无法在 PHP、Linux 中使用 gettext

php - 编译运行程序时出现Hiphop报错

php - 完全移除 Blade 并剥离 Laravel/Lumen

php - 2 个供应商包 : laravel and lumen 使用的相同命名空间