2017-05-28 53 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期望您的值是數字或字符串類型。