播种用户时如何创建默认的登录用户帐户?

融合

我想要一种“默认登录名”的方式,这样当我php artisan migrate:refresh在数据库上执行操作时,我可以在PLUS中播种一堆用户,每次用户帐户都具有相同的电子邮件和密码。实现此目标的最佳方法是什么?我认为也许可以使用标准用户工厂加上创建默认用户工厂来工作,但是由于它使用相同的User类,因此它只能创建一个新的标准用户。

UserFactory.php


/** @var \Illuminate\Database\Eloquent\Factory $factory */

use App\User;
use Faker\Generator as Faker;
use Illuminate\Support\Str;


$factory->define(User::class, function (Faker $faker) {
    return [
        'name' => $faker->name,
        'email' => $faker->unique()->safeEmail,
        'email_verified_at' => now(),
        'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
        'remember_token' => Str::random(10),
    ];
});

DefaultUserFactory.php


/** @var \Illuminate\Database\Eloquent\Factory $factory */

use App\User;
use Faker\Generator as Faker;
use Illuminate\Support\Str;

$factory->define(User::class, function (Faker $faker) {
    return [
         'name' => $faker->name,
         'email' => '[email protected]',
         'email_verified_at' => now(),
         'password' => bcrypt('demo123'), // password
         'remember_token' => Str::random(10),
    ];
});
黑莓

UserSeeder.php创建其他用户的种子之前,请使用您的工厂创建默认用户:

public function run()
{
  // Create admin user
  $user = factory(User::class)->create([
    'name' => 'AdMiN',
    'email' => '[email protected]',
    'password' => bcrypt('aDmIn'),
  ]);

  // Create 5 more users:
  factory(User::class, 5)->create();
}

注意create()工厂方法可以采用属性数组。这些将覆盖工厂的定义。

确保在以下位置激活/运行此播种器DatabaseSeeder.php

public function run()
{
  $this->call(UserSeeder::class);
}

编辑:不需要您的DefaultUserFactory.php东西,一切都可以通过您处理UserFactory.php

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章