LaravelでSeederを使って初期データを投入する方法
102 回閲覧されました
みなさんこんにちは、jonioです。
今回はLaravelでSeederを使って初期データを投入する方法を解説します。
おすすめ参考書
基礎力を上げるのに一番おすすめです。
リンク
Seederの作成
下記のコマンドを叩きます。
php artisan make:seeder DemoSeeder
「DemoSeeder」の「D」は大文字にして下さい。
これでSeederが作成されます。
作成したSeederに記述
テーブルにデータを投入する為に「Laravelのプロジェクト > database > seeders > DemoSeeder.php」に下記の記述(サンプル)をします。
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use App\Models\Demo; //この行を追加
class MovieSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
//ここから追加
Demo::insert([
[
'name' => 'jonio',
'created_at' => '2024-09-01',
'updated_at' => '2024-09-01'
],
]);
//ここまで追加
}
}
19行目の「Demo」はSeederの名前です。
DatabaseSeeder.phpに記述
記述をしたらDemoSeeder.phpと同じ階層にあるDatabaseSeeder.phpに下記の記述をします。
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*/
public function run(): void
{
$this->call(DemoSeeder::class); //この行を追加
}
}
Seederを適用
下記のコマンドを叩きます。
php artisan db:seed --class=DemoSeeder
「DemoSeeder」はDemoSeeder.phpのphpを取った名前です。
これでデータの投入ができます。