ReflectionException - 类DatabaseSeeder不存在,Laravel Seeder

Ivá*_*ova 6 php migration laravel eloquent

我有不同的文件夹中的数据库播种器clases.当我写db:seed时,控制台显示以下错误:

[ReflectionException]   Class DatabaseSeeder does not exist , Laravel Seeder
Run Code Online (Sandbox Code Playgroud)

一类是这样的:

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

}
Run Code Online (Sandbox Code Playgroud)

我的另一课是

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
        ));
    }
}
Run Code Online (Sandbox Code Playgroud)

我试过用

composer dump-autoupload 
Run Code Online (Sandbox Code Playgroud)

但不起作用.

如您所见,我在同一名称空间中有两个clases.

请帮忙.

aly*_*sha 6

删除两个类中的命名空间定义,并使用“composer dump-autoload”。

然后它就会正常工作。


vla*_*dko 6

如果您最近升级了Laravel版本,请检查您的composer.json

您的"自动加载"部分应该类似于下面的代码段

注意:您可能必须在"classmap"下添加"database"条目

"autoload": {
        "classmap": [
          "app/Library",
          "app/Models",
          "database"
        ],
        "psr-4": {
            "App\\": "app/"
        },
        "files": [
            "app/Library/helpers.php"
        ]
    },
Run Code Online (Sandbox Code Playgroud)

然后你应该跑步composer dumpautoload并尝试php artisan db:seed


Dol*_*rma 6

您应该将此行添加到composer.json文件内"psr-4"

"Database\\Seeders\\": "database/seeders/"
Run Code Online (Sandbox Code Playgroud)

这意味着应该是这样的:

"autoload": {
    "psr-4": {
        "App\\": "app/",
        "Modules\\": "Modules/",
        "Database\\Seeders\\": "database/seeders/"
    }
},
Run Code Online (Sandbox Code Playgroud)


Bri*_* H. 2

只需将其全部放入 DatabaseSeeder.php 文件中,如下所示:

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
        ));
    }
}
Run Code Online (Sandbox Code Playgroud)