Hinzufügen von Beziehungen zu Laravel Factory Model

Ich versuche, eine Beziehung zu einem Factory-Modell hinzuzufügen, um einige Datenbank-Seeding-Vorgänge wie folgt durchzuführen. Hinweis: Ich versuche, jedem Benutzer 2 Posts hinzuzufügen.

public function run()
{
   factory(App\User::class, 50)->create()->each(function($u) {
         $u->posts()->save(factory(App\Post::class, 2)->make());
   });
}

Aber es wirft den folgenden Fehler

Argument 1 passed to Illuminate\Database\Eloquent\Relations\HasOneOrMany::s  
ave() must be an instance of Illuminate\Database\Eloquent\Model, instance 
of Illuminate\Database\Eloquent\Collection given

Ich denke, es hat etwas mit dem Speichern einer Sammlung zu tun. Wenn Sie den Code neu schreiben, indem Sie jedes Fabrikmodell für den Post separat aufrufen, scheint er zu funktionieren. Offensichtlich ist dies nicht sehr elegant, denn wenn ich 10 beibehalten oder an jeden Benutzer posten möchte, muss ich 10 oder Zeilen dekalieren, es sei denn, ich verwende eine Art for-Schleife.

public function run()
{
   factory(App\User::class, 50)->create()->each(function($u) {
     $u->posts()->save(factory(App\Post::class)->make());
     $u->posts()->save(factory(App\Post::class)->make());
   });
}

* AKTUALISIERT

Gibt es eine Möglichkeit, die Modellfabrik auf einer dritten Ebene zu nisten?

public function run()
{
   factory(App\User::class, 50)
       ->create()
       ->each(function($u) {
           $u->posts()->saveMany(factory(App\Post::class, 2)
                    ->make()
                    ->each(function($p){
                          $p->comments()->save(factory(App\Comment::class)->make());
          }));
   });
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage