web-dev-qa-db-ja.com

Laravelにユーザーを手動で登録します

認証登録ページではなく、手動でユーザーを(職人で)登録することはできますか?

ほんの少数のユーザーアカウントが必要なだけで、登録コントローラーとビューをセットアップせずにこれらを作成する方法があるかどうか疑問に思いました。

39
Matt Ellis

これを一度だけやりたいと思うので、Artisanコマンドなどを作成するような凝ったものは必要ありません。php artisan tinker(素晴らしいツール!)を使用し、ユーザーごとに次のコマンドを追加することをお勧めします。

$user = new App\User();
$user->password = Hash::make('the-password-of-choice');
$user->email = '[email protected]';
$user->name = 'My Name';
$user->save();
78

これは古い投稿ですが、Laravel 5. *でコマンドラインを使用したい場合は、これが簡単な方法です。

php artisan tinker

次に入力します(データで置き換えます):

DB::table('users')->insert(['name'=>'MyUsername','email'=>'[email protected]','password'=>Hash::make('123456')])
5
I. Patrick

はい、データベース 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');
     }
}

これで、テーブルにユーザーを挿入する必要があるたびに、最終的にphp artisan db:seed --class=UserTableSeederを使用できます。

4
user2094178

モデルファクトリーを使用して、いくつかのユーザーアカウントを生成して動作させることができます。 seederを書くことでも仕事は完了です。

1
oseintow