Wie übergibt man Argumente an Laravel Fabriken?
Ich habe eine users
Tabelle und eine eins-zu-null/eins-relation mit einem businesses
Tabelle (users.user_id => Unternehmen.user_id). Auf meinem users
Tabelle habe ich ein Diskriminator, die sagt mir, wenn der Benutzer ist vom Typ business und deshalb brauche ich, um details auf der businesses
Tisch.
Ich möchte mein Benutzer mit meiner Fabrik, die derzeit arbeitet-und nur dann erstellen, business details, in denen der Diskriminator-Punkte, um ein business-Konto.
Ich habe drei Optionen in meinem Kopf:
- Erstellen von Benutzer-Fabrik und dann mit '->jede()' tun einige Kontrollen auf den Diskriminator und erstellen Sie eine neue business-Anwender mit einem Werk. Aber ich kann mir nicht pass, um die business factory der
user_id
dass der Benutzer zugewiesen wurde. - Ersten anlegen der Benutzer. Dann in meinem Geschäft seeder, um alle Benutzer, entspricht ein 'Geschäft' Diskriminator. Dann für alle diese Benutzer führen Sie eine Fabrik, die schafft das business-details. Aber dann wieder, ich hätte den link irgendwie die
user_id
des bereits erstellen Anwender mit den business factoryuser_id
. - In meinem business factory einen neuen Benutzer erstellen und abrufen der id, so dass die Verbindung zwischen
users.user_id
undbusiness.user_id
. Jedoch bin ich mit einem random generator füruser.user_type
also selbst wenn ich diebusinesses
eine Tabelle, könnte es für Benutzer, die den Diskriminator als "persönliche".
Gibt es einen anderen Weg? Kann ich die Argumente von meinem Seeder zu der Fabrik?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Attributen, die Sie passieren, um die
create
Funktion übergeben werden, die in Ihrem Modell-definition Rückruf als das zweite argument.In Ihrem Fall brauchen Sie nicht einmal Zugriff auf die Attribute, da werden Sie automatisch zusammengeführt werden:
Passen dieses an Ihre Bedürfnisse an.
php $student->assignRole('student');
im mit spatie/GenehmigungUser::create($attributes)
Mein code für das hinzufügen von polymorphen 'Admin' - Benutzer wurde:
Hoffe, das hilft.