Ich habe eine users
-Tabelle und eine Eins-zu-Null / Eins-Beziehung mit einer businesses
-Tabelle (users.user_id = & gt; businesses.user_id). Auf meiner users
-Tabelle habe ich einen Diskriminator, der mir sagt, ob der Benutzer vom Typ Geschäft ist und deshalb muss ich auch Details zur Tabelle businesses
haben.
Ich möchte meine Benutzer mit meiner Factory erstellen, die gerade funktioniert, und dann nur Geschäftsdetails erstellen, bei denen der Diskriminator auf ein Geschäftskonto verweist.
Ich habe drei Möglichkeiten im Kopf:
user_id
, der der Benutzer zugewiesen wurde, nicht an die Geschäftsfactory übergeben. user_id
des bereits erstellten Benutzers mit der Geschäftsfactory user_id
verknüpfen. users.user_id
und business.user_id
hergestellt wird. Allerdings verwende ich einen Zufallsgenerator für user.user_type
. Selbst wenn ich die Tabelle businesses
gefüllt habe, könnte es für Benutzer sein, die den Diskriminator als 'persönlich' haben. Gibt es einen anderen Weg? Kann ich Argumente von meinem Seeder an die Fabrik weitergeben?
Die Attribute, die Sie an die Funktion create
übergeben, werden als zweites Argument in Ihren Modelldefinitions-Callback übernommen.
In Ihrem Fall müssen Sie nicht einmal auf diese Attribute zugreifen, da sie automatisch zusammengeführt werden:
%Vor%Passen Sie dies Ihren Bedürfnissen an.
Tags und Links laravel factory laravel-seeding