2017-08-15 2 views
1

Ich habe Tabelle markierbare, es Tabelle zu vielen Polymorphe Beziehungen (Tag und post) für Viele ist:Wie Schreib Seeder in Laravel

taggable_id - id of Post 
tag_id - id of Tag 
taggable type - location of post model (default value"App/Models/Posts/Post") 
is_search_term - boolen (0 or 1) 

Wie eine Sämaschine schaffen, die jedes Mal für die Beziehungen gleiche Datensätze erstellen?

+0

Dies kann helfen, obwohl es laravel4 ist [Laravel 4: Arbeiten mit Beziehungen in Samen] (https://stackoverflow.com/questions/14666277/laravel-4-working-with-relationships-in-seeds) –

Antwort

2

Tag_id wird von db automatisch erstellt, wenn es auf Primärschlüssel gesetzt ist, taggable_id erhalten Werte vom Tag-Modell.

Sie können so etwas versuchen;

$factory->define(App\Tag::class, function (Faker\Generator $faker) { 
    return [ 
     'taggable_id' => random_int(\DB::table('posts')->min('id'), \DB::table('posts')->max('id')), 
     'is_search_term'=>$faker->numberBetween(0,1), 
'taggable_type'=>$faker->sentence(2), 

    ]; 
}); 
+0

Aber wenn ich neues Seeding starte, war es ein neues Relation Post mit Tags. – Georg

+0

was meinst du ?? –

+0

Die gesamte Zeit, wenn ich die Seeding-Beziehung beginne, muss gleich sein (Felder in der Tabelle müssen gleich, aber nicht zufällig sein) – Georg