Laravel 播种时 ModelFactory 错误

Laravel ModelFactory error when seeding

我的模型工厂:

<?php        

    $factory->define(App\Models\Customer::class, function (Faker\Generator $faker) {
        return [
            'name' => $faker->company,
            'email' => $faker->unique()->safeEmail,
            'status'=> $faker->numberBetween($min = 0, $max = 2),
            'slug'=> $faker->slug,
        ];
    });

数据库播种器

<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {

        $customers= factory(App\Models\Customer::class, 100)->create();

    }
}

当我运行

php artisan db:seed

我收到错误

  [Symfony\Component\Debug\Exception\FatalThrowableError]
  Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR), expecting '
  ]'

能想到的都试过了,还是找不到问题所在...


编辑:

我忘了提到这在一天前工作正常,然后 "broke" 当我开始添加更多 ModelFactories(在单独的文件中)时。然后,我放弃了所有更改(来自源代码管理),以 100% 确定我没有更改任何内容。唯一的其他方面可能是我在 .gitignore 中有一些东西可能已经更新但没有回滚:

/node_modules
/public/storage
/public/hot
/storage/*.key
/.idea
Homestead.json
Homestead.yaml

看来问题出在这一行:

'status'=> $faker->numberBetween($min = 0, $max = 2),

应该是:

'status'=> $faker->numberBetween(0, 2),

好吧,所以我找到了原因并对此感到非常愚蠢,但无论如何还是将其张贴在这里以防有人步我的后尘。

问题是 database/factories 文件夹中还有其他 ModelFactories,似乎 运行 php artisan db:seed 也解析了这些文件,即使它们是未在 DatabaseSeeder class 中引用 。其中一个文件的一对多语法不正确,这是导致错误的原因。

我意识到这一点的唯一方法是我 运行 php artisan tinker 中的工厂->创建方法,它抛出的错误消息引用了另一个工厂定义。

FWIW,然后我使用 概述的方法处理我的人际关系 - 出于问题中提到的原因...