私はテスト用のログイン情報やマスターデータをDBに入れるときにSeederを使用します。
目次
Seederファイルを生成
Seederファイルを生成するには、下記のコマンドを実行する
php artisan make:seeder TestUsersTableSeeder #シーダー名
database/seeds の中にTestUsersTableSeederファイル生成される
<?php use Illuminate\Database\Seeder; class TestUsersTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { // } }
run( )メソッドの中に登録したいデータを書いていく
run( )メソッドはdb:seed artisanコマンドが実行された時に呼び出される
<?php use Illuminate\Database\Seeder; class TestUsersTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { DB::table('users')->insert([ 'name' => 'ユーザー', 'email' => 'user@test.mail', 'password' => bcrypt('123456'), ]); } }
DatabaseSeederに追記
database/seeds/DatabaseSeeder に追加したSeederファイル名を追記する
<?php use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { $this->call(TestUsersTableSeeder::class); } }
データベースにデータを追加
下記のコマンドで、DatabaseSeederが実行されデータが登録される
php artisan db:seed
個別で実行したい場合のコマンドは、
php artisan db:seed --class=TestUsersTableSeeder
これでデータベースにデータを入れる事ができる
insertメソッド
insertメソッドは、データベーステーブルにレコードを挿入するためのメソッド
挿入するカラム名と値の配列を引数に取る
bcrypt
BCryptは、パスワードを暗号化にする
データベースの中には(2y2y10$Sc)このようにパスワードが表示される