简体   繁体   中英

Laravel: error while seeding the database (Array to string conversion)

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM