前提・実現したいこと
php artisan db:seedのコマンドを使ってdbの作成をしたいのですが以下のエラーが発生して作成することができません。
珍しいエラーではないと思うのですが調べて出てきた解決法を試しても解決せずかれこれ3日戦っております。
よろしくお願いします。
発生している問題・エラーメッセージ
Illuminate\Contracts\Container\BindingResolutionException Target class [BlogsTableSeeder] does not exist. at C:\lara\htdocs\blog\vendor\laravel\framework\src\Illuminate\Container\Container.php:879 875▕ 876▕ try { 877▕ $reflector = new ReflectionClass($concrete); 878▕ } catch (ReflectionException $e) { ➜ 879▕ throw new BindingResolutionException("Target class [$concrete] does not exist.", 0, $e); 880▕ } 881▕ 882▕ // If the type is not instantiable, the developer is attempting to resolve 883▕ // an abstract type such as an Interface or Abstract Class and there is 1 C:\lara\htdocs\blog\vendor\laravel\framework\src\Illuminate\Container\Container.php:877 ReflectionException::("Class "BlogsTableSeeder" does not exist") 2 C:\lara\htdocs\blog\vendor\laravel\framework\src\Illuminate\Container\Container.php:877 ReflectionClass::__construct("BlogsTableSeeder")
該当のソースコード
BlogsTableSeeder.php
<?php use Illuminate\Database\Seeder; use App\Models\Blog; class BlogsTableSeeder extends Seeder { /** * Seed the application's database. * * @return void */ public function run() { // $this->call(UsersTableSeeder::class); \App\Models\Blog::factory()->count(10)->create(); } }
DatebaseSeeder.php
<?php use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { /** * Seed the application's database. * * @return void */ public function run() { // $this->call(UsersTableSeeder::class); $this->call(BlogsTableSeeder::class); } }
BlogsFactory.php
<?php namespace Database\Factories; use App\Models\Blog; use Illuminate\Database\Eloquent\Factories\Factory; class BlogsFactory extends Factory { protected $model = \App\Models\Blog::class; /** * Define the model's default state. * * @return array */ public function definition() { return [ 'title' => $this->faker->word, 'content' => $this->faker->realText ]; } }
app\Models\Blog.php
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\BlogsFactory; class Blog extends Model { // テーブル名 protected $table = 'blogs'; // 可変項目 protected $fillable = [ 'title', 'content' ]; }
試したこと
composer dump-autoloadを打つ。
php artisan config:clearを打つ。
補足情報(FW/ツールのバージョンなど)
laravelのバージョンは8.76.2
参考サイト
Laravel 8のseederでFakerを使う
Laravel入門
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。