在 Laravel 6 中找不到工厂
Factories Not Found in Laravel 6
我卡住了...我正在尝试让一组工厂在 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()
我试过在工厂调用中指定名称 space,我试过将它放在双引号中,我试过在末尾添加 '::class' .控制器在那里,模型在那里,迁移按预期工作,但每次我 运行 修补工厂时,它都不给我。我发现的大多数文档也引用了 Laravel 的旧版本,因此我不确定它们是否为我提供了正确的语法。
值得注意的是,UserFactory 提供的库存也不起作用。这是我今天下载的 Laravel 6 的全新下载,目的是学习 Laracasts 的课程。该课程较旧,专注于 Laravel 5.4,但我可以弄清楚转换...我只是无法让它发挥作用来挽救我的生命,我也不知道为什么。
如果您想查看其他代码,我已经将整个项目上传到这里:https://github.com/aarpie100/laracasts_forum
帮忙?
尝试发送 Thread::class 而不是 Thread 作为字符串。如果您以字符串形式发送,我认为应该是 'App\Thread' 。
工厂函数当你调用
class 名称你应该这样写 (Thread :: class)
我卡住了...我正在尝试让一组工厂在 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()
我试过在工厂调用中指定名称 space,我试过将它放在双引号中,我试过在末尾添加 '::class' .控制器在那里,模型在那里,迁移按预期工作,但每次我 运行 修补工厂时,它都不给我。我发现的大多数文档也引用了 Laravel 的旧版本,因此我不确定它们是否为我提供了正确的语法。
值得注意的是,UserFactory 提供的库存也不起作用。这是我今天下载的 Laravel 6 的全新下载,目的是学习 Laracasts 的课程。该课程较旧,专注于 Laravel 5.4,但我可以弄清楚转换...我只是无法让它发挥作用来挽救我的生命,我也不知道为什么。
如果您想查看其他代码,我已经将整个项目上传到这里:https://github.com/aarpie100/laracasts_forum
帮忙?
尝试发送 Thread::class 而不是 Thread 作为字符串。如果您以字符串形式发送,我认为应该是 'App\Thread' 。
工厂函数当你调用 class 名称你应该这样写 (Thread :: class)