【问题标题】:lumen generate fake data with faker from given arraylumen 使用给定数组的 faker 生成假数据
【发布时间】:2018-09-08 06:55:16
【问题描述】:

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

我的文件在下面,

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

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

【问题讨论】:

  • 你可以foreach不同的用户角色!比如 10 条管理员用户角色记录,10 条员工用户角色记录!
  • 感谢您的帮助,但这是最后的方法,有没有其他方法可以生成以上 10 条不同角色的记录?

标签: php laravel lumen faker


【解决方案1】:

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

【讨论】:

  • 让我看看上面的解决方案
  • 当时不允许我,告诉我还剩 2 分钟,现在完成了 :)
猜你喜欢
  • 2014-05-23
  • 2019-04-29
  • 2023-03-30
  • 2019-10-25
  • 1970-01-01
  • 2018-07-08
  • 2019-06-18
  • 2020-08-28
  • 2014-03-12
相关资源
最近更新 更多