Posted at

Laravel5.7 初期値投入(シーディング)

Laravel勉強し始めたのでメモです。

- 「Laravelインストール直後の設定変更、テーブル作成」の続きです


シーディングとは


  • テストするためのデータを初期値として登録するための仕組み

  • シーダーと呼ばれる


対象ファイル置き場:[app\database\seedsにファイルが生成される]

artisanでm_os_typeマスタテーブルに対応するシーダーを作成します。

php artisan make:seeder MOsTypeTableSeeder

MOsTypeTableSeeder.phpが、app\database\seedsに作成されます。

use Illuminate\Database\Seeder;

class MOsTypeTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/

public function run()
{
//
}
}

追加する値をMOsTypeTableSeederに追記します。

復数レコード追加の仕方が分からないので、2つ書いています。

<?php

use Illuminate\Database\Seeder;

class MOsTypeTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/

public function run()
{
$nowDate = Date('Y-m-d H:i:s');
DB::table('m_os_type')->insert(
[
'id' => '1',
'os_type_name' => 'iOS',
'created' => $nowDate,
'modified' => $nowDate,
]);
DB::table('m_os_type')->insert(
[
'id' => '2',
'os_type_name' => 'Android',
'created' => $nowDate,
'modified' => $nowDate,
]);
}
}

シーダーを実行します

$ php artisan db:seed --class=MOsTypeTableSeeder

値を確認すると入っていました。