2017-05-28 2 views
0

Ich versuche, die Datenbank zu impfen. Nach dem Benutzer-Beispiel erstelle ich einen Emploi (Job) Seeder, aber ich habe einen Fehler.Laravel: Fehler während der Datenbank (Array String-Konvertierung) Impfen

seeding Datei

$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), 
    ]; 
}); 

Ausnahme

[ErrorException] 
    Array to string conversion 

Ausgang

[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

den Ausgang prüfen '$ faker-> Wörter()'. –

+0

@WesleyPeters danke, dass ich diese Anordnung habe ('leri', 'rednar', 'pratpu'). Kannst du eine Antwort posten, damit ich deine Antwort abstimmen kann? –

+0

Da gehts los! Einen schönen Tag noch! –

Antwort

2

Die Faker-Bibliothek verfügt über einige Methoden, die array anstelle von string zurückgeben. Was Laravel hier erwartet, ist eine Saite. So können Sie entweder PHP verwenden implode Funktion einen String zu erstellen, oder tauschen die gesamte $faker->words() Methode für $faker->sentence(). Hier ist die Methode Unterschrift:

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

Prost!

+0

Danke für die Erwähnung der API auch! Einen schönen Tag noch! –

2

versuchen Sie implode('',$faker->words(5)) anstelle von $faker->words(5) als Laravel erwartet Ihren Wert entweder numerisch oder Zeichenfolge-Typ.

Verwandte Themen