Laravel 8 シーダーとファクトリーでテストデータ用意したい
解決したいこと
php artisan db:seedを実行すると下記のエラーが出ます。
(Laravel Framework 8.34.0)
どなたか分かる方がいましたら、教えていただきたいです。
宜しくお願い致します。
発生している問題・エラー
Error
Class 'Database\Factories\TodoFactory' not found
at C:\xampp\htdocs\todos\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Factories\Factory.php:683
679▕ public static function factoryForModel(string $modelName)
680▕ {
681▕ $factory = static::resolveFactoryName($modelName);
682▕
➜ 683▕ return $factory::new();
684▕ }
685▕
686▕ /**
687▕ * Specify the callback that should be invoked to guess factory names based on dynamic relationship names.
1 C:\xampp\htdocs\todos\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Factories\HasFactory.php:15
Illuminate\Database\Eloquent\Factories\Factory::factoryForModel()
2 C:\xampp\htdocs\todos\database\seeders\TodosTableSeeder.php:17
App\Models\Todo::factory()
PS C:\xampp\htdocs\todos>
該当するソースコード(Modelsファイル)
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Todo extends Model{
use HasFactory;
//テーブル名
protected $table = 'todos';
//可変項目
protected $fillable =[
'content'
];
}
該当するソースコード(factoriesファイル)
<?php
namespace Database\Factories;
use App\Models\Todo;
use Illuminate\Database\Eloquent\Factories\Factory;
class TodoFactorFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = App\Models\Todo::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'content' => $this->faker->word,
];
}
}
該当するソースコード(seedersファイル)
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
// \App\Models\User::factory(10)->create();
$this->call(TodosTableSeeder::class);
}
}
該当するソースコード(seedersファイル)
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use App\Models\Todo;
class TodosTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
\App\Models\Todo::factory()->count(10)->create();
}
}
自分で試したこと
composer dump-autoload コマンドを実行してもエラーが出ます。
0