I'm trying to seed the database. Following the User example I create a Emploi (Job) seeder but I'm having an error.
seeding file
$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),
];
});
exception
[ErrorException]
Array to string conversion
output
[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();
尝试implode('',$faker->words(5))
而不是$faker->words(5)
因为laravel期望您的值是数字或字符串类型。
The Faker
library has a few methods that'll return an array
instead of a string
. What laravel is expecting here is a string. So, you could either use PHP's implode
function to create a string, or swap out the entire $faker->words()
method for $faker->sentence()
. Here's the method signature:
sentence($nbWords = 6, $variableNbWords = true)
Cheers!
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.