前提
seederとfactoryでテストデータを用意したいです。
php artisan db:seed
を実行した際に、エラーが発生するので、解決方法や解決につながる意見が欲しいです。
かなりレベルの低い質問かもしれませんがよろしくお願いします。
実現したいこと
- エラーの解消
発生している問題・エラーメッセージ
Seeding: Database\Seeders\BlogsTableSeeder BadMethodCallException Call to undefined method App\Models\Blog::factory() at vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php:71 67▕ * @throws \BadMethodCallException 68▕ */ 69▕ protected static function throwBadMethodCallException($method) 70▕ { ➜ 71▕ throw new BadMethodCallException(sprintf( 72▕ 'Call to undefined method %s::%s()', static::class, $method 73▕ )); 74▕ } 75▕ } +3 vendor frames 4 database/seeders/BlogsTableSeeder.php:18 Illuminate\Database\Eloquent\Model::__callStatic("factory", []) +8 vendor frames 13 database/seeders/DatabaseSeeder.php:20 Illuminate\Database\Seeder::call("Database\Seeders\BlogsTableSeeder")
該当のソースコード
BlogFactory.php
<?php namespace Database\Factories; use Illuminate\Database\Eloquent\Factories\Factory; use App\Models\Blog; /** * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Blog> */ class BlogFactory extends Factory { /** * Define the model's default state. * * @return array<string, mixed> */ public function definition() { return [ 'title' => $this->faker->word(), 'content' => $this->feker->realText() ]; } }
BlogsTableSeeder.php
<?php namespace Database\Seeders; use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; use App\Models\Blog; class BlogsTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { Blog::factory()->count(15)->create(); } }
DatabaseSeeder.php
<?php namespace Database\Seeders; use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; use App\Models\Blog; class DatabaseSeeder extends Seeder { /** * Seed the application's database. * * @return void */ public function run() { $this->call([ BlogsTableSeeder::class, ]); } }
試したこと
https://readouble.com/laravel/9.x/ja/database-testing.html
https://readouble.com/laravel/9.x/ja/seeding.html
2つの公式レファレンスをもとに記述の確認を行いました
補足情報(FW/ツールのバージョンなど)
Laravel Framework 9.10.1
PHP version 8.0.8
まだ回答がついていません
会員登録して回答してみよう