Laravel 5.2:无法找到具有名称的工厂 \[默认\]

新手上路,请多包涵

我想在使用它时播种数据库

 public function run()
{
    $users = factory(app\User::class, 3)->create();
}

在数据库中添加三个用户但是当我使用它时

 public function run()
{
    $Comment= factory(app\Comment::class, 3)->create();
}

显示错误

[无效参数异常]

无法找到名称为 [default] [app\Comment] 的工厂。

原文由 paranoid 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 614
2 个回答

默认情况下,laravel 安装在 database/factories/ModelFactory.php 文件中附带此代码。

 $factory->define(App\User::class, function (Faker\Generator $faker) {
    return [
        'name' => $faker->name,
        'email' => $faker->email,
        'password' => bcrypt(str_random(10)),
        'remember_token' => str_random(10),
    ];
});

因此,您需要先定义一个工厂模型,然后再将其用于种子数据库。这只是使用了一个 Faker 库 的实例,该实例用于生成假数据,以便为数据库播种以执行测试。

确保您已为 Comments 模型添加了类似的 Modal Factory。

所以你的评论模型工厂将是这样的:

 $factory->define(App\Comment::class, function (Faker\Generator $faker) {
    return [
        'comment' => $faker->sentence,
         // Any other Fields in your Comments Model
    ];
});

原文由 Mohan 发布,翻译遵循 CC BY-SA 3.0 许可协议

就我而言,这个问题的出现是因为我实际上并没有制造我想要调用的工厂——我一次制造了一堆模型,只是忘记了创建那个工厂!

原文由 Abraham Brookes 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题