【问题标题】:Laravel: How can i generate two unique seeds in my laravel fakerLaravel:如何在我的 laravel faker 中生成两个独特的种子
【发布时间】:2018-01-26 14:14:16
【问题描述】:

我想在我的 faker 中创建两个唯一用户。我想知道正确的做法。

$factory->define(App\User::class, function (Faker\Generator $faker) {
    static $password;

    return [
      {
        'name' => "Person 1",
        'email' => "person1@gmail.com",
        'password' => $password ?: $password = bcrypt('secret'),
        'remember_token' => str_random(10),
        'role' => 'super',
      },
      {
        'name' => "Person 2",
        'email' => "person2@gmail.com",
        'password' => $password ?: $password = bcrypt('secret'),
        'remember_token' => str_random(10),
        'role' => 'admin',
      },
    ];
});

【问题讨论】:

    标签: php laravel faker


    【解决方案1】:

    这段代码解决了我的问题

    $factory->define(App\User::class, function (Faker\Generator $faker) {
    static $password;
    
    return [
    
        'name' => $faker->unique()->randomElement($array = array ('Person1','Person2')),
        'email' => $faker->unique()->randomElement($array = array ('p1@gmail.com','p2@gmail.com')),
        'password' => $password ?: $password = bcrypt('secret'),
        'remember_token' => str_random(10),
        'role' => $faker->unique()->randomElement($array = array ('super','admin')),
    ];
    });
    

    【讨论】:

    • 这是干什么用的 - $array =
    • 我将唯一值存储在该数组变量中
    • 为什么?之后你就不用它了。
    【解决方案2】:

    这段代码解决了我的问题:

    do {
            $uniqueName = $faker->name;
            $uniqueEmail = $faker->unique()->safeEmail;
        } while (User::where([
                'name' => $uniqueName,
                'email' => $uniqueEmail,
            ])
                ->count()
        );
    

    【讨论】:

      猜你喜欢
      • 2022-07-21
      • 2023-03-03
      • 2018-09-10
      • 1970-01-01
      • 2019-01-17
      • 1970-01-01
      • 2019-07-21
      • 2017-03-06
      • 2014-12-29
      相关资源
      最近更新 更多