我正在尝试播种数据库。在User示例之后,我创建了一个Emploi(Job)播种器,但是我遇到了错误。
播种文件
$factory->define(App\Emploi::class, function (Faker\Generator $faker) {
return [
'JOBURL' => $faker->name,
'SALARYMAX' => '$50,000',
'SALARYMIN' => '$40,000',
'SALARYTYPE' => 'annual',
'NAME' => $faker->words(5),
'POSITION' => $faker->words(4),
'JOBREF' => str_random(10),
'JOB_SUMMARY' => $faker->text,
'tweeted' => false,
'POSTDATE' => $faker->dateTime(),
'EXPIRYDATE' => $faker->dateTime(),
'slug' => str_random(10),
];
});
例外
[ErrorException]
Array to string conversion
输出
[Illuminate\Database\QueryException]
Array to string conversion
(SQL: insert into `emplois`
(`JOBURL`, `SALARYMAX`,
`SALARYMIN`, `SALARYTYPE`, `NAME`, `POSITION`,
`JOBREF`,
`JOB_SUMMARY`,
`tweeted`, `
POSTDATE`, `EXPIRYDATE`, `slug`,
`updated_at`, `created_at`)
values
(Lawson Boyer II, $50,000,
$40,000, annual, rerum, voluptates,
LCw8d67S8w,
Nulla qui corporis sequi.
Eum nostrum culpa ut culpa velit.
Molestiae cumque doloremque et ex.,
0,
1972-11-09 12:00:07, 1997-10-04 09:08:17, 6FxxCHFus6,
2017-05-28 03:18:52, 2017-05-2 8 03:18:52)
)
databaseSeeder
factory(App\Emploi::class, 50)->create();
答案 0 :(得分:2)
尝试implode('',$faker->words(5))
而非$faker->words(5)
,因为laravel期望您的值为数字或字符串类型。
答案 1 :(得分:2)
Faker
库有一些方法可以返回array
而不是string
。 laravel在这里期待的是一个字符串。因此,您可以使用PHP的implode
函数创建字符串,也可以替换$faker->words()
的整个$faker->sentence()
方法。这是方法签名:
sentence($nbWords = 6, $variableNbWords = true)
干杯!