[英]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.