[英]ReflectionException - Class DatabaseSeeder does not exist , Laravel Seeder
我在不同的文件夹中有数据库播种机类。 当我写 db:seed 时,控制台显示此错误:
[ReflectionException] Class DatabaseSeeder does not exist , Laravel Seeder
一类是这样的:
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');
}
}
我的另一堂课是
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
));
}
}
我试过用
composer dump-autoupload
但不起作用。
如您所见,我在同一个命名空间中有两个类。
请帮忙。
如果您最近升级了 Laravel 版本,请检查您的 composer.json
您的“自动加载”部分应该类似于下面的代码段
注意:您可能需要在“classmap”下添加“database”条目
"autoload": {
"classmap": [
"app/Library",
"app/Models",
"database"
],
"psr-4": {
"App\\": "app/"
},
"files": [
"app/Library/helpers.php"
]
},
然后你应该运行composer dumpautoload
并尝试php artisan db:seed
只需将其全部放入 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
));
}
}
删除两个类中的命名空间定义,并使用“composer dump-autoload”。
然后它会正常工作。
解决:通过添加
命名空间数据库\\种子;
然后运行命令:
作曲家转储自动加载 --no-dev
您应该将此行添加到"psr-4"
内的composer.json
文件中:
"Database\\Seeders\\": "database/seeders/"
这意味着应该是这样的:
"autoload": {
"psr-4": {
"App\\": "app/",
"Modules\\": "Modules/",
"Database\\Seeders\\": "database/seeders/"
}
},
还要确保项目中存在数据库文件夹。 如果您不小心删除了数据库文件夹并运行迁移命令。 你也会得到这个错误。
只需要进行一次更改,将文件夹种子重命名为播种机。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.