我想要一种“默认登录名”的方式,这样当我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] 删除。
我来说两句