ReflectionException - DatabaseSeeder class does not exist, Laravel Seeder

I have database seed clusters in another folder. When I write db: seed, the console shows this error:

[ReflectionException]   Class DatabaseSeeder does not exist , Laravel Seeder

One class:

namespace Database\Seeds;
use Illuminate\Support\Facades\DB;
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

use TiposCompromisosTableSeeder;

class DatabaseSeeder extends Seeder {

    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {

            Eloquent::unguard();

            $this->call('TiposCompromisosTableSeeder');
    }

}

and my other class

namespace Database\Seeds;

use Illuminate\Support\Facades\DB;
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

class TiposCompromisosTableSeeder extends Seeder{

    public function run(){

        DB::table('tipos')->insert(array(
            'nombre' => 'prioridad',
            'tabla' => 'compromisos',
            'str1' => 'baja',
            'int1' => 1
        ));
    }
}

I tried to use

composer dump-autoupload 

but does not work.

As you can see, I have both classes in the same namespace.

Help me please.

+4
source share
5 answers

Just put all this into the DatabaseSeeder.php file as follows:

use Illuminate\Support\Facades\DB;
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

class DatabaseSeeder extends Seeder {

    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {

            Eloquent::unguard();

            $this->call('TiposCompromisosTableSeeder');
    }

}

class TiposCompromisosTableSeeder extends Seeder{

    public function run(){

        DB::table('tipos')->insert(array(
            'nombre' => 'prioridad',
            'tabla' => 'compromisos',
            'str1' => 'baja',
            'int1' => 1
        ));
    }
}
+2
source

If you recently upgraded Laravel, check out your composer.json

Your autoload section should look something like the one below.

NOTE. You may need to add the entry "database" in the "classmap" section

"autoload": {
        "classmap": [
          "app/Library",
          "app/Models",
          "database"
        ],
        "psr-4": {
            "App\\": "app/"
        },
        "files": [
            "app/Library/helpers.php"
        ]
    },

composer dumpautoload php artisan db:seed

+2

remove the namespace definition in the two classes and use the “auto-load linker”.

Then it will work fine.

+1
source

Solved: adding

namespace database \ seed;

and then run the command:

composer dump-autoload --no-dev

0
source

Does adding the -no-dev flag help?

composer dump-autoload --no-dev

source

-1
source

Source: https://habr.com/ru/post/1589525/


All Articles