マイグレーションをやり直した時に、DBデータも自動で登録できるようにシーダーを使ってデータを作成しておくと マイグレーションのやり直しがとても楽にできます。
テーブル名「clients」の場合「ClientsSeeder」や「ClientsTableSeeder」といった名前をつけて作成します。
(例: clients テーブル用のシーダーファイルを作成する )
php artisan make:seeder ClientsSeeder
( database/seeds/ClientsSeeder.php が作成されます )
database/seeds/ClientsSeeder.php
<?php
use Illuminate\Database\Seeder;
class ClientsSeeder extends Seeder
{
/**
* Run the database seeds.
* @return void
*/
public function run()
{
DB::table("clients")->insert([
'id' => 1 ,
'client_name' => 'テスト商事' ,
'tel_name' => '012-345-6789' ,
'fax_name' => '012-345-6780',
]);
DB::table("clients")->insert([
'id' => 2 ,
'client_name' => 'てすとの商事' ,
'tel_name' => '112-345-6789' ,
'fax_name' => '112-345-6780',
]);
}
}
database/seeds/DatabaseSeeder.php に作成したシーダーファイルを記述して呼び出します
<?php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
* @return void
*/
public function run()
{
$this->call([
ClientsSeeder::class , // 追加
]);
}
}
php artisan db:seed
composer の autoload を再読み込みしてから実行するとうまく実行できます。
composer dump-autoload
php artisan db:seed