我正在为一个内部Laravel应用程序处理一个包,在运行包目录中的seeder时遇到了问题。
在packages/vendor/packagename中的composer.json文件中,我添加了以下内容:
"autoload": {
"psr-4": {
"Vendor\\PackageName\\": "src/",
"Vendor\\PackageName\\Database\\Factories\\": "database/factories/",
"Vendor\\PackageName\\Database\\Seeders\\": "database/seeders/"
}
},
我有以下文件位于"packages/供应商/软件包名称/数据库/种子/部门种子. php"
<?php
namespace Vendor\PackageName\Database\Seeders;
use Illuminate\Database\Seeder;
use Vendor\PackageName\Models\Department;
class DepartmentSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Department::factory()->count(10)->create();
}
}
然后尝试运行以下命令:
$ php artisan db:seed --class="Vendor\\PackageName\\Database\\Seeders\\DepartmentSeeder"
目标类[供应商\ Package 名称\数据库\种子\部门种子]不存在。
如果我将seeders目录移到src目录中并运行以下命令,它就可以工作,但我宁愿将seeders保留在数据库目录中。
$ php artisan db:seed --class="Vendor\\PackageName\\seeders\\DepartmentSeeder"
有人知道为什么找不到这个课程吗?我所有的谷歌搜索结果都是紫色的,我甚至去了第二页=/
溶液
在我的特殊情况下,composer dump-autoload
并没有起到作用,我最后所做的是运行composer update vendor/packagename
,无论问题是什么,它都得到了解决。
希望这能帮助其他可能有类似问题的人。
1条答案
按热度按时间x0fgdtte1#
在我的特殊情况下,
composer dump-autoload
并没有起到作用,我最后所做的是运行composer update vendor/packagename
,无论问题是什么,它都得到了解决。希望这能帮助其他可能有类似问题的人。