Laravel are o metodă simplă de populare a unei baze de date cu date de testare utilizând clasele de semințe. Aceste clase sunt stocate în baza de date / semințe. Puteți folosi orice nume pentru numele de clasă al umpluturii, dar este înțelept să folosiți nume similare cu UserTableSeeder. În mod implicit, clasa DatabaseSeeder este deja creată în folderul Fillers. În această clasă, puteți utiliza metoda de apelare pentru a rula alte materiale de umplere, ceea ce vă permite să controlați ordinea conținutului.
Crearea materialelor de umplutură
Pentru a crea o umplutură, puteți folosi comanda Make: comanda Artisan pentru semănătoare. Comanda creează un material de umplere în dosarul bazei de date / semințe:
În mod implicit, clasa de umplere conține o singură metodă: executați. Metoda se numește atunci când se execută comanda db: seed Artisan. În metoda de rulare, puteți introduce date în baza de date în orice mod convenabil. Puteți utiliza constructorul de interogări pentru introducerea manuală sau puteți utiliza fabrici de modele elocvente.
De exemplu, să schimbăm clasa implicită DatabaseSeeder. Adăugați o expresie de inserție în metoda de rulare:
Utilizarea fabricii
Fără îndoială, definirea manuală a atributelor pentru fiecare model de umplere este obositoare. În schimb, puteți utiliza fabrici de modele pentru a crea un număr mare de înregistrări în baza de date. În primul rând, aflați cum să definiți documentația din fabrică din fabrică. După definiție, puteți utiliza funcția de ajutor pentru fabrică pentru a insera înregistrările în baza de date.
De exemplu, creați 50 de utilizatori și adăugați un link pentru fiecare utilizator:
Apelați materiale de umplere suplimentare
În clasa DatabaseSeeder, puteți utiliza metoda de apelare pentru a rula clase adiționale de umplere. Metoda de apelare vă permite să efectuați umplerea bazei de date prin mai multe fișiere fără a crea o clasă mare de umplere. Pur și simplu treceți clasa de umplere dorită la metoda de rulare:
Rularea materialelor de umplutură
După scrierea clasei de umplere, folosiți comanda Arborele db: seed pentru a umple baza de date. În mod implicit, rulează clasa DatabaseSeeder. care pot fi folosite pentru a apela alte clase de umpluturi. Cu toate acestea, puteți utiliza opțiunea --class pentru a specifica o altă clasă de umplere:
De asemenea, puteți completa baza de date cu comanda de migrare: refresh. care va schimba modificările și va aplica din nou toate migrările. Această comandă este utilă pentru refacerea completă a bazei de date: