从程序包运行Laravel播种机

1wnzp6jl  于 2023-01-10  发布在  其他
关注(0)|答案(1)|浏览(109)

我正在为一个内部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,无论问题是什么,它都得到了解决。
希望这能帮助其他可能有类似问题的人。

x0fgdtte

x0fgdtte1#

在我的特殊情况下,composer dump-autoload并没有起到作用,我最后所做的是运行composer update vendor/packagename,无论问题是什么,它都得到了解决。
希望这能帮助其他可能有类似问题的人。

相关问题