反射异常:手动添加的类不存在

时间:2019-08-30 13:28:26

标签: php laravel laravel-5.8

我在我的应用程序中添加了一个播种器(从其他位置复制并粘贴),并将该调用包括在Database Seeder run()函数中。即使存在该类,我也得到上面的异常。

我怀疑也许某些文件可能已被缓存,所以我清除了应用程序缓存,但仍然遇到相同的错误。

DatabaseSeeder.php

<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        // $this->call(CustomersTableSeeder::class);
        $this->call(RolesTableSeeder::class);
        $this->call(ManagerStatesTableSeeder::class);
        $this->call(ManagersTableSeeder::class);
        $this->call(CountsTableSeeder::class);
        $this->call(CategoriesTableSeeder::class);
    }
}

播种器文件CategoriesTableSeeder.php

<?php

use Illuminate\Database\Seeder;

class CategoriesTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        \DB::table('categories')->insert([
            [
                'description' => 'Perfumes and Deo',
                'slug' => 'perfumes-and-deo',
                'parent' => 0,
                'level' => 1,
                'cna' => '2|',
                'created_at' => \Carbon\Carbon::now(),
                'updated_at' => \Carbon\Carbon::now(),
            ],
            [
                'description' => 'Perfumes',
                'slug' => 'perfumes',
                'parent' => 1,
                'level' => 2,
                'cna' => NULL,
                'created_at' => \Carbon\Carbon::now(),
                'updated_at' => \Carbon\Carbon::now(),
            ]
        ]);
    }
}

错误:

  

ReflectionException:类CategoriesTableSeeder不存在

     

在C:\ wamp \ www \ ma-sales-tracker \ vendor \ laravel \ framework \ src \ Illuminate \ Container \ Container.php:788

     

异常跟踪:

     

1 ReflectionClass :: __ construct(“ CategoriesTableSeeder”)         C:\ wamp \ www \ ma-sales-tracker \ vendor \ laravel \ framework \ src \ Illuminate \ Container \ Container.php:788

     

2 Illuminate \ Container \ Container :: build(“ CategoriesTableSeeder”)         C:\ wamp \ www \ ma-sales-tracker \ vendor \ laravel \ framework \ src \ Illuminate \ Container \ Container.php:667

关于可能是什么原因的任何想法?预先感谢大家

2 个答案:

答案 0 :(得分:0)

我运行Composer dump-autoload,瞧!发挥了魅力。同样,正如Alex Mac所建议的那样,请始终使用工匠命令生成Seeders。

答案 1 :(得分:0)

无论何时创建任何新文件,请始终运行以下命令:-

composer dumpa // composer dump-autoload
php artisan optimize:clear

因为在bootstrap文件夹中,它可以跟踪每个文件和其他配置等。