認証登録ページではなく、手動でユーザーを(職人で)登録することはできますか?
ほんの少数のユーザーアカウントが必要なだけで、登録コントローラーとビューをセットアップせずにこれらを作成する方法があるかどうか疑問に思いました。
これを一度だけやりたいと思うので、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();
これは古い投稿ですが、Laravel 5. *でコマンドラインを使用したい場合は、これが簡単な方法です。
php artisan tinker
次に入力します(データで置き換えます):
DB::table('users')->insert(['name'=>'MyUsername','email'=>'[email protected]','password'=>Hash::make('123456')])
はい、データベース 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
を使用できます。
モデルファクトリーを使用して、いくつかのユーザーアカウントを生成して動作させることができます。 seederを書くことでも仕事は完了です。