我的ModelFactory:
<?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 '
]'
我已经尝试了我能想到的一切,但找不到问题......
修改
我忘了提到前一天工作正常,然后在我开始添加更多ModelFactories(在单独的文件中)时“破了”。然后我放弃了所有的更改(从源代码控制),以100%确定我没有改变任何东西。唯一的另一个方面可能是我在.gitignore中有一些可能已经更新但没有回滚的内容:
/node_modules
/public/storage
/public/hot
/storage/*.key
/.idea
Homestead.json
Homestead.yaml
答案 0 :(得分:1)
问题似乎就在这一行:
'status'=> $faker->numberBetween($min = 0, $max = 2),
应该是:
'status'=> $faker->numberBetween(0, 2),
答案 1 :(得分:0)
好的,所以我找到了原因并且对此感到非常愚蠢,但无论如何都要在这里张贴,以防有人跟随我的脚步。
问题是数据库/工厂文件夹中还有其他ModelFactories,似乎正在运行php artisan db:seed
解析这些文件,即使它们未在{{>中引用 1}}类。其中一个文件的语法不正确,导致错误。
我意识到这一点的唯一方法是我在DatabaseSeeder
中运行了factory-&gt; create方法,并且它引发的错误消息引用了其他工厂定义。
FWIW,然后我使用了here概述的方法来解决我的关系 - 出于问题中提到的原因......