Исключение отражения: класс не существует для класса, добавленного вручную

Я добавил сидер (скопированный откуда-то и вставленный) в свое приложение и включил вызов в функцию Run () Database Seeder. Я получаю исключение выше, хотя класс существует.

Я подозревал, что, возможно, некоторые файлы могли быть кешированы, поэтому я очистил кеш приложения, но все равно получаю ту же ошибку.

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);
    }
}

Категории файлов сидераTableSeeder.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

Есть идеи о том, что может быть причиной этого? Заранее спасибо, ребята


person Ekow    schedule 30.08.2019    source источник
comment
Не могли бы вы подробно описать путь / имя файла класса CategoriesTableSeeder?   -  person dparoli    schedule 30.08.2019
comment
база данных \ семена \ CategoriesTableSeeder.php   -  person Ekow    schedule 30.08.2019
comment
Привет, @Ekow, как @dparoli, я вижу, что вы не пишете инструкцию use, попробуйте, добавив ее.   -  person pietro    schedule 30.08.2019
comment
Композитор дамп-автозагрузка, если вы добавляли его вручную. Я бы порекомендовал использовать команды artisan в следующий раз, потому что они сделают это за вас.   -  person Alex Mac    schedule 30.08.2019
comment
попробуйте запустить composer dump-autoload, но странно, что в последних версиях этого не должно быть   -  person dparoli    schedule 30.08.2019
comment
@pietro yikes. Я не уверен, что понимаю. Вы можете уточнить. Спасибо милли   -  person Ekow    schedule 30.08.2019
comment
@AlexMac Я согласен на 100%, с этого момента буду делать это всегда. И да, это сработало! Вы молодцы!   -  person Ekow    schedule 30.08.2019


Ответы (2)


Запускаю Composer dump-autoload и вуаля! Сработал оберег. Также, как предлагает Алекс Мак, всегда создавайте сидеры с помощью ремесленных команд.

person Ekow    schedule 30.08.2019

Всякий раз, когда вы создаете новый файл, всегда выполняйте следующие команды: -

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

потому что в папке начальной загрузки он отслеживает каждый файл, другие конфигурации и т. д.

person Vipertecpro    schedule 31.08.2019