私はテスト用のログイン情報やマスターデータを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)このようにパスワードが表示される

