php-在L中手动注册用户

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

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

Matt Ellis asked 2020-08-12T05:36:44Z
5个解决方案
83 votes

我认为您希望一次性执行此操作,因此不需要创建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();
Christoffer Tyrefors answered 2020-08-12T05:36:54Z
5 votes

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

Francesco de Guytenaere answered 2020-08-12T05:37:17Z
5 votes

这是一个古老的帖子,但是如果有人想在Laravel 5. *中使用命令行来做,这是一个简单的方法:

php artisan tinker

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

DB::table('users')->insert(['name'=>'MyUsername','email'=>'thisis@myemail.com','password'=>Hash::make('123456')])
I. Patrick answered 2020-08-12T05:37:41Z
4 votes

是的,最好的选择是创建一个播种机,以便您始终可以重复使用它。

例如,这是我的php artisan db:seed --class=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);
    }
}

创建此播种器之后,必须运行php artisan db:seed --class=UserTableSeeder,然后在database/seeds/DatabaseSeeder.php中添加以下内容:

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

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

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

user2094178 answered 2020-08-12T05:38:15Z
1 votes

您可以使用模型工厂来生成几个用户帐户来使用它。 编写播种机也可以完成工作。

oseintow answered 2020-08-12T05:38:35Z
translate from https://stackoverflow.com:/questions/35753951/manually-register-a-user-in-laravel