Ho una tabella users
e una relazione uno-zero/uno con una tabella businesses
(users.user_id => business.user_id). Sulla mia tabella users
ho un discriminatore che mi dice se l'utente è di tipo aziendale e quindi ho bisogno di avere i dettagli sulla tabella businesses
pure.Come passare argomenti alle fabbriche Laravel?
Desidero creare i miei utenti con la mia fabbrica che attualmente sta funzionando e quindi creare solo dettagli aziendali dove il discriminatore punta a un account aziendale.
Ho tre opzioni nella mia mente:
- Creare da parte degli utenti in fabbrica e poi usando '-> ogni()' fare alcuni controlli sulla discriminatore e creare un nuovo utente business utilizzando un fabbrica. Tuttavia non posso passare alla factory aziendale il
user_id
che l'utente è stato assegnato. - Prima creare gli utenti. Quindi, nella mia seeder aziendale, recupera tutti gli utenti che corrispondono a un discriminatore "aziendale". Quindi per tutti questi utenti viene eseguito uno stabilimento che crea i dettagli aziendali. Ma ancora una volta, dovrei collegare in qualche modo lo
user_id
dell'utente già creato con la factory aziendaleuser_id
. - Nella mia azienda, creare un nuovo utente e recuperare l'id, creando così il collegamento tra
users.user_id
ebusiness.user_id
. Tuttavia sto usando un generatore casuale peruser.user_type
quindi anche se ho la tabellabusinesses
piena potrebbe essere per gli utenti che hanno il discriminatore come 'personale'.
C'è un altro modo? Posso passare argomenti dalla mia seminatrice alla fabbrica?
Come potrei averlo perso. Ho visto la lezione di Laracast e so che ricordo di aver sistemato le cose da solo. Naturalmente era anche nella documentazione: http://laravel.com/docs/master/testing#model-factories. Molte grazie. – Cristian
@ Il link di Cristian sembra obsoleto ora, per 5.4 vedere https://laravel.com/docs/5.4/database-testing#using-factories e scorrere fino a "Modelli persistenti" – morph
che dire di questo? '' 'php $ student-> assignRole ('studente'); '' ' im using spatie/permission –