Laravel 5.4无法找到名称为[factory]的工厂

时间:2017-09-30 11:03:04

标签: php laravel faker

我知道这个问题在这个论坛上已经多次问过,但是那个帖子上的答案并不适合我,所以我需要创建新的。

创建种子数据时出现此错误,我的工厂代码如下。

种子类代码:

 public function run() {

      factory(AppName\Models\Subscription::class, $datas)->create();

 }

我的工厂代码:

$factory->define(AppName\Models\Subscription::class, function (Faker $faker) {

    $subscription_id = AppName\Models\Subscription::pluck('id')->toArray();

    $datetime = $faker->dateTimeBetween($startDate = '2017-08-01 12:00:00', $endDate = '2017-09-30 12:00:00', $timezone = date_default_timezone_get());

    return [
        'subscription_id' => $faker->numberBetween($min = min($subscription_id), $max = max($subscription_id)),
        'status' => 'sent',
        'created_at' => $datetime,
        'updated_at' => $datetime

    ];
});

我收到了这个错误:

Unable to locate factory with name [default] [AppName\Models\Subscription].

即使我更改了型号名称,我也会使用相同的型号名称获得相同的错误

Unable to locate factory with name [default] [AppName\Models\Subscription].

1 个答案:

答案 0 :(得分:1)

这可能很晚。但对于那些面临这个问题的人来说,这会有所帮助,

添加

factory(\AppName\Models\Subscription::class, $datas)->create();

而不是

factory(AppName\Models\Subscription::class, $datas)->create();