今回はこんな疑問に答えていきます。
【前提】
・laravel8
Laravel8でダミーデータを作成する方法→シーダーを使います
結論から話すと、シーダーという機能を使います。
以下のコマンドで、シーダーを作成できます。
php artisan make:seeder モデル名Seeder
//例
// php artisan make:seeder UserSeeder
手動生成コードを紹介
手動の場合のコードを紹介します。
さきほど作成したシーダーファイルに以下のように書いていきます。
今回はUserSeeeder.phpというファイル名の場合を想定して書いていきます。
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
class UserSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table('users')->insert([
[
'name' => 'test1',
'email' => 'test6443367@kom.com',
'password' => Hash::make('password'),
],
[
'name' => 'test2',
'email' => 'test6423367@kom.com',
'password' => Hash::make('password'),
],
[
'name' => 'test3',
'email' => 'test6411367@kom.com',
'password' => Hash::make('password'),
]
]);
}
}
今回は3人ほどダミーデータを入れたいので、配列で3つのデータを渡しています。
次にDatabaseSeeederで読み込んでいきます。
「database/seeders/DatabaseSeeder.php」を編集していきます。
以下のように記述してください。
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
$this->call([
UserSeeder::class
]);
}
}
最後にシーダーを実行します。
以下のコマンドを実行してください。
php artisan db:seed
//Seeding: Database\Seeders\UserSeeder
//Seeded: Database\Seeders\UserSeeder (455.14ms)
//Database seeding completed successfully.
//と出れば成功
DBを確認して、さきほどの3つのデータが新規挿入されていれば成功です。
Illuminate\Contracts\Container\BindingResolutionException Target class [Database\Seeders\UserSeeder] does not exist.と出る場合の対処方法
上記エラーが出る場合は、以下を確認してください。
・クラス名を間違えていないか(UserSeederのはずが、Userになっている)
・指定するクラス名にタイプミスがないか
Database seeding completed successfully.と出るのに、データが入っていない場合
「database/seeders/DatabaseSeeder.php」で、作成したシーダーを読み込んでいるか確認してください。
今回は以上です。
参考資料:公式ドキュメント