Laravelのバージョン8でSeedersとFactoryを使ってテストコードを作りたいのですが、下記のエラーが出てしまいました。
なぜBlogFacrotyは読みこまれないのでしょうか?
Seeding: Database\Seeders\BlogsTableSeeder Error Class 'Database\Factories\BlogFactory' not found at vendor/laravel/framework/src/Illuminate/Database/Eloquent/Factories/Factory.php:650 646▕ public static function factoryForModel(string $modelName) 647▕ { 648▕ $factory = static::resolveFactoryName($modelName); 649▕ ➜ 650▕ return $factory::new(); 651▕ } 652▕ 653▕ /** 654▕ * Specify the callback that should be invoked to guess factory names based on dynamic relationship names. +1 vendor frames 2 database/seeders/BlogsTableSeeder.php:17 App\Models\Blog::factory() +8 vendor frames 11 database/seeders/DatabaseSeeder.php:18 Illuminate\Database\Seeder::call("Database\Seeders\BlogsTableSeeder")
database/seeders/BlogsTableSeeders.php
php
1<?php 2 3namespace Database\Seeders; 4 5use Illuminate\Database\Seeder; 6use App\Models\Blog; 7 8class BlogsTableSeeder extends Seeder 9{ 10 /** 11 * Run the database seeds. 12 * 13 * @return void 14 */ 15 public function run() 16 { 17 \App\Models\Blog::factory()->create(); 18 } 19} 20
database/factories/BlogFactory.php
php
1<?php 2 3namespace Database\Factories; 4 5use App\Models\Blog; 6use Illuminate\Database\Eloquent\Factories\Factory; 7 8class ModelFactory extends Factory 9{ 10 /** 11 * The name of the factory's corresponding model. 12 * 13 * @var string 14 */ 15 protected $model = Blog::class; 16 17 /** 18 * Define the model's default state. 19 * 20 * @return array 21 */ 22 public function definition() 23 { 24 return [ 25 // 26 'title' => $this->faker->text(50), 27 'content' => $this->faker->text(200) 28 ]; 29 } 30} 31
Models/Blog.php
php
1<?php 2 3namespace App\Models; 4 5use Illuminate\Database\Eloquent\Factories\HasFactory; 6use Illuminate\Database\Eloquent\Model; 7 8class Blog extends Model 9{ 10 use HasFactory; 11 //テーブル名 12 protected $table = 'blogs'; 13 14 //可変項目 15 protected $fillable = 16 [ 17 'title', 18 'content' 19 ]; 20} 21
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/29 10:15
2020/09/29 10:38
2020/09/29 10:42