我只想要一些可以从我的数据库中循环的虚拟数据,但是当我尝试使用播种器时,我收到此错误:
unable to locate factory with name [default] [Subject]
我运行的代码是:
php artisan db:seed --class=SubjectSeeder
ModelFactory.php:
$factory->define(App\Subject::class, function (Faker\Generator $faker) {
return [
'name' => $faker->name,
'code' => $faker->str_random(3),
];
});
SubjectSeeder.php:
public function run()
{
$subject = factory(Subject::class)->make();
Product::create([
'name' => $subject->name,
'code' => $subject->code
]);
}
subject.php:
class Subject extends Model
{
protected $fillable = [
'name', 'code',
];
};
答案 0 :(得分:1)
OddDream的回答是正确的。
只是解释一下。
您的模型/对象可能无法正确链接。
$ subject = factory(\ App \ Subject :: class) - > make();
另一个原因是缓存。你可能想做点什么。
php artisan config:清楚 php artisan config:cache
让我知道它是否对你有所帮助。
:)
答案 1 :(得分:0)
如果有人和我犯了同样的错误,我只想定义state
工厂,没有默认工厂:
$factory->define(\App\Model::class, function (Faker $faker) {
答案 2 :(得分:-1)
SubjectSeeder.php:
$subject = factory(\APP\Subject::class)->make();