前提
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
1<?php 2 3namespace Database\Factories; 4 5use Illuminate\Database\Eloquent\Factories\Factory; 6use App\Models\Blog; 7 8/** 9 * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Blog> 10 */ 11class BlogFactory extends Factory 12{ 13 /** 14 * Define the model's default state. 15 * 16 * @return array<string, mixed> 17 */ 18 public function definition() 19 { 20 return [ 21 'title' => $this->faker->word(), 22 'content' => $this->feker->realText() 23 ]; 24 } 25}
BlogsTableSeeder.php
1<?php 2 3namespace Database\Seeders; 4 5use Illuminate\Database\Console\Seeds\WithoutModelEvents; 6use Illuminate\Database\Seeder; 7use App\Models\Blog; 8 9class BlogsTableSeeder extends Seeder 10{ 11 /** 12 * Run the database seeds. 13 * 14 * @return void 15 */ 16 public function run() 17 { 18 Blog::factory()->count(15)->create(); 19 } 20}
DatabaseSeeder.php
1<?php 2 3namespace Database\Seeders; 4 5use Illuminate\Database\Console\Seeds\WithoutModelEvents; 6use Illuminate\Database\Seeder; 7use App\Models\Blog; 8 9 10class DatabaseSeeder extends Seeder 11{ 12 /** 13 * Seed the application's database. 14 * 15 * @return void 16 */ 17 public function run() 18 { 19 $this->call([ 20 BlogsTableSeeder::class, 21 ]); 22 } 23}
試したこと
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
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。