2017-05-28 80 views
0

我试图播种数据库。在用户示例之后,我创建了一个Emploi(Job)播种机,但出现错误。Laravel:播种数据库时出错(数组到字符串转换)

种子文件

$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

检查'$ faker-> words()'的输出。 –

+0

@WesleyPeeters谢谢我有这个数组('leri','rednar','pratpu')。你能发表一个答案,以便我可以投票你的答案 –

+0

你走了!祝你今天愉快! –

回答

2

Faker库有一些方法将返回array而不是string。拉拉维尔在这里期待的是一个字符串。所以,你可以使用PHP的implode函数来创建一个字符串,或换出$faker->sentence()的整个$faker->words()方法。这里的方法签名:

sentence($nbWords = 6, $variableNbWords = true)

干杯!

+0

感谢您提及API!祝你今天愉快! –

2

尝试​​而不是$faker->words(5)因为laravel期望您的值是数字或字符串类型。