繁体   English   中英

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

[英]Adjust Seeders integration for Package Development in Laravel 8

我在 laravel.7.x 中为 api 开发了一个包。 该 api 是作为 laravel 的一个包提供的。 现在我想将它升级到 Laravel 8。不幸的是我无法让播种机工作。

所有包 Seeder 都应该在

php artisan migrate:fresh --seed

命令。

显然没有找到 Seeder 类。 例如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');

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM