在 Laravel 中手动注册用户

Manually register a user in Laravel

是否可以手动注册用户(使用 artisan?)而不是通过授权注册页面?

我只需要少数用户帐户,想知道是否有一种方法可以创建这些帐户而无需设置注册控制器和视图。

是的,您可以轻松地编写一个数据库 seeder 并以此方式为您的用户播种。

是的,最好的选择是创建一个播种器,这样您就可以随时重复使用它。

例如,这是我的 UserTableSeeder:

class UserTableSeeder extends Seeder {

public function run() {

    if(env('APP_ENV') != 'production')
    {
        $password = Hash::make('secret');

        for ($i = 1; $i <= 10; $i++)
        {
            $users[] = [
                'email' => 'user'. $i .'@myapp.com',
                'password' => $password
            ];
        }

        User::insert($users);
    }
}

创建此播种器后,您必须 运行 composer dumpautoload,然后在您的 database/seeds/DatabaseSeeder.php 中添加以下内容:

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        Model::unguard();

        $this->call('UserTableSeeder');
     }
}

现在您终于可以在每次需要在 table 中插入用户时使用 php artisan db:seed --class=UserTableSeeder

您可以使用Model Factories生成几个用户帐户来使用它。编写 seeder 也可以完成工作。

我想你想一次性完成,所以不需要像创建 Artisan 命令等花哨的东西。我建议简单地使用 php artisan tinker(很棒的工具!)并添加每个用户执行以下命令:

$user = new App\User();
$user->password = Hash::make('the-password-of-choice');
$user->email = 'the-email@example.com';
$user->name = 'My Name';
$user->save();

这是一个旧的post,但如果有人想用命令行来做,在Laravel 5.*,这是一个简单的方法:

php artisan tinker

然后键入(替换为您的数据):

DB::table('users')->insert(['name'=>'MyUsername','email'=>'thisis@myemail.com','password'=>Hash::make('123456')])