Laravel: 播种数据库时出错(数组到字符串的转换)
Laravel: error while seeding the database (Array to string conversion)
我正在尝试为数据库设定种子。按照用户示例,我创建了一个 Emploi(工作)播种机,但出现错误。
种子文件
$factory->define(App\Emploi::class, function (Faker\Generator $faker) {
return [
'JOBURL' => $faker->name,
'SALARYMAX' => ',000',
'SALARYMIN' => ',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, ,000,
,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)
)
数据库播种器
factory(App\Emploi::class, 50)->create();
尝试 implode('',$faker->words(5))
而不是 $faker->words(5)
,因为 laravel 期望您的值是数字或字符串类型。
Faker
库有一些方法可以 return array
而不是 string
。 laravel 在这里期望的是一个字符串。因此,您可以使用 PHP 的 implode
函数来创建字符串,或者将整个 $faker->words()
方法换成 $faker->sentence()
。这是方法签名:
sentence($nbWords = 6, $variableNbWords = true)
干杯!
我正在尝试为数据库设定种子。按照用户示例,我创建了一个 Emploi(工作)播种机,但出现错误。
种子文件
$factory->define(App\Emploi::class, function (Faker\Generator $faker) {
return [
'JOBURL' => $faker->name,
'SALARYMAX' => ',000',
'SALARYMIN' => ',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, ,000,
,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)
)
数据库播种器
factory(App\Emploi::class, 50)->create();
尝试 implode('',$faker->words(5))
而不是 $faker->words(5)
,因为 laravel 期望您的值是数字或字符串类型。
Faker
库有一些方法可以 return array
而不是 string
。 laravel 在这里期望的是一个字符串。因此,您可以使用 PHP 的 implode
函数来创建字符串,或者将整个 $faker->words()
方法换成 $faker->sentence()
。这是方法签名:
sentence($nbWords = 6, $variableNbWords = true)
干杯!