我被困住了……我试图让一组工厂在Laravel 6中工作,不断出现以下错误:
InvalidArgumentException with message 'Unable to locate factory with name [default] [User].'
在这里和网络上还有其他关于此的文章,我已经尝试了所有这些解决方案。我对工厂的代码如下:
<?php
/** @var \Illuminate\Database\Eloquent\Factory $factory */
use App\Thread;
use Faker\Generator as Faker;
$factory->define(Thread::class, function (Faker $faker) {
return [
'user_id' => function () {
return factory('App\User')->create()->id;
},
'title' => $faker->sentence,
'body' => $faker->paragraph
];
});
我正在使用php artisan tinker尝试生成数据库条目,以便可以在其余模型中工作。我正在使用的命令如下:
factory('Thread',50)->create()
我尝试在工厂调用中指定名称空间,尝试将其用双引号引起来,并尝试在末尾添加':: class'。控制器在那里,模型在那里,迁移按预期进行,但是每次我在修补匠中经营工厂时,它都不会给我。我发现的大多数文档也都引用了旧版本的Laravel,因此我不确定它们是否为我提供了正确的语法。
值得注意的是,如果UserFactory也不起作用,则库存也将减少。这是Laravel 6的最新下载,我今天做完了Laracasts的整个课程。这门课程比较老,主要针对Laravel 5.4,但是我可以弄清楚这种转换……我只是无法将其用于挽救生命,也无法弄清楚为什么。
如果您想查看其他代码,我将整个项目上传到这里:https://github.com/aarpie100/laracasts_forum
帮助?
答案 0 :(得分:1)
尝试发送Thread :: class而不是Thread作为字符串发送。如果您以字符串形式发送,我想应该是“ App \ Thread”。
答案 1 :(得分:0)
工厂函数当你调用 你应该这样写的类名(Thread::class)