在 Laravel 8 中调整包开发的 Seeders 集成

Adjust Seeders integration for Package Development in Laravel 8

我在 laravel.7.x 中为 api 开发了一个包。 api 作为 laravel 的包裹交付。现在我想升级到laravel 8。不幸的是我无法让播种机工作。

所有包播种程序都应在

之后执行
php artisan migrate:fresh --seed

命令。

显然找不到播种机 类。例如 Target class [PostSeeder] does not exist.

但它确实存在,甚至在同一个命名空间中。

现在我尝试从 DatabaseSeeder 开始,我找到了这个。但是从那里无法触发其他播种机。

有没有人知道可以尝试什么或者有针对此问题的提示或代码片段?

非常感谢。

好的,问题解决

使用在 laravel 8 中包含工厂的新方法,即模型具有此新功能:

use Acme\YourPackage\Database\Factories\PostFactory;
use Illuminate\Database\Eloquent\Factories\HasFactory;

protected static function newFactory()
{
    return PostFactory::new();
}

并确保这样称呼它:

enter $this->call('Acme\YourPackage\Database\Seeders\PostSeeder');

之后确保您的命名空间和 class 路径设置正确。