Database Seeder in Laravel

Database Seeder in Laravel
I dati dell'applicazione Web sono archiviati in modo permanente nel database ed è una parte essenziale di un progetto Web. A volte richiede testare l'applicazione con dati fittizi. Questa attività può essere eseguita nel progetto Laravel utilizzando una semina del database. Laravel contiene classi di semi per aggiungere molti dati falsi rapidamente nel database per scopi di test e queste classi sono archiviate nella posizione, database/seminatrici. IL Databaseseeder La classe viene utilizzata per impostazione predefinita in Laravel per usare le classi di semina. In questo tutorial è stato mostrato il modo di seminare i dati nel database utilizzando le classi di semi del Laravel.

Prerequisiti:

È necessario completare le seguenti attività prima di avviare l'attività di semina del database.

  1. Crea un nuovo progetto Laravel chiamato SeedProject. Qui, il compositore è stato utilizzato per creare il progetto Laravel. Se la compositore non è installato prima di allora, è necessario installarlo prima di eseguire il seguente comando.
    $ composir crea-project Laravel/Laravel SeederProject
  1. Vai alla cartella del progetto.
    $ CD SeederProject
  2. Tutti gli esempi di questo tutorial sono stati testati nella versione 9+. Controlla la versione installata di Laravel.
    $ php artisan -version

Setup Database:

È necessario creare un database in MySQL per implementare l'attività di semina del database. Completa le seguenti attività per creare un database e impostare il database per il progetto Laravel.

  1. Esegui il seguente comando SQL per creare un database chiamato db_seeder dal prompt mysql.
    mysql> crea database db_seeder;
  2. Apri il .env File del progetto Laravel e inizializza i valori per le seguenti informazioni in base al database.
    Db_connection = mysql
    Db_host = localhost
    Db_port = 3306
    Db_database = db_seeder
    Db_username = 'nome utente'
    Db_password = 'password'

Crea un file modello e migrazione per una tabella:

Vai alla cartella del progetto Laravel ed esegui il comando seguente per creare il modello di modello e migrazione per il Clienti tavolo.

$ PHP Artisan Make: Model Clienti -M

Verrà visualizzato il seguente output se il modello e il file di migrazione sono stati creati correttamente. Il file modello denominato clienti.PHP e il file di migrazione denominato 2022_03_09_141143_create_customers_table.PHP è stato creato qui. Il file di migrazione richiederà di modificare per l'aggiunta dei campi della tabella dei clienti in base ai requisiti del progetto ed è stato fatto nella parte successiva del tutorial.

Modifica il file di migrazione:

Apri il file di migrazione dalla posizione, database/migrazione, e modificare il file con il seguente contenuto, in base al contenuto del file di migrazione, 7 campi. Questi sono id, nome. Indirizzo, e -mail, contact_no. Created_at e Updated_at Fields.

Usa illuminate \ database \ migrations \ migration;
Usa illuminate \ database \ Schema \ Blueprint;
Usa illuminare \ Support \ Facedes \ Schema;
restituire la nuova classe estende la migrazione

/**
* Esegui le migrazioni.
*
* @return void
*/
funzione pubblica up ()

Schema :: create ("clienti", funzione (Blueprint $ table)
$ table-> id ();
$ table-> string ("nome", 30);
$ table-> text ("indirizzo");
$ table-> string ("email", 50);
$ table-> string ("contact_no", 30);
$ table-> timestamps ();
);

/**
* Invertire le migrazioni.
*
* @return void
*/
funzione pubblica down ()

Schema :: Dropifexists ("clienti");

;

Crea la tabella in base al file di migrazione:

Eseguire il seguente comando migra per creare il Clienti Tabella nel database. I dati falsi verranno inseriti in questa tabella.

$ PHP Artisan Migrate

Crea fabbrica per generare i dati falsi:

Esegui il comando seguente per creare la fabbrica che verrà utilizzata per inserire dati falsi nella tabella dei clienti.

$ PHP Artisan Make: Factory ClientiFactory -Model = Clienti

Verrà visualizzato il seguente output se la fabbrica viene creata correttamente e il ClientiFactory.PHP Il file viene creato all'interno del database/fabbriche cartella del progetto.

Apri il ClientiFactory.PHP file e modifica il contenuto del file con il seguente contenuto. Tre proprietà Faker sono state utilizzate per aggiungere un nome falso, e -mail e indirizzo nello script. Questi sono faker-> nome, faker-> email, E Faker-> Indirizzo. Un metodo Faker è stato utilizzato per generare il numero di telefono falso. Il nome del metodo è numerify (). Questo metodo inserirà un numero di telefono falso a partire da "880", qualsiasi cifra numerica di 4 numeri seguiti da "-," e qualsiasi cifre numerica di 6 numeri seguiti da un altro "-.'

Database dello spazio dei nomi \ fabbriche;
Usa Illuminate \ Database \ Eloquent \ Factories \ Factory;
Usa l'app \ modelli \ clienti;
/**
* @Extends \ Illuminate \ Database \ Eloquent \ Factories \ Factory
*/
CLASS ClientiFactory estende la fabbrica

/**
* Definisci lo stato predefinito del modello.
*
* Array @return
*/
protetto $ model = clienti :: class;
Definizione della funzione pubblica ()

ritorno [
'name' => $ this-> faker-> name,
'indirizzo' => $ this-> faker-> indirizzo,
'email' => $ this-> faker-> email,
'contact_no' => $ this-> faker-> numerify ('880-######### »)
];

Crea la classe Seedder:

Esegui il comando seguente per creare la classe SEMER utilizzata per eseguire la fabbrica creata prima.

$ PHP Artisan Make: Seeder CustomerSeeder

Verrà visualizzato il seguente output se la classe SEMER viene creata correttamente e il Clienti.PHP La classe è creata all'interno del database/seminatrici cartella del progetto.

Apri il ClientiSeeder.PHP file e modifica il contenuto del file con il seguente contenuto. Secondo lo script, verranno inseriti 20 record falsi dopo aver eseguito il comando seed.

Database dello spazio dei nomi \ Seers;
Utilizzare illuminate \ database \ console \ seeds \ withodelevents;
Usa Illuminate \ Database \ SEMER;
Usa l'app \ modelli \ clienti;
CLASS ClientiSeder estende Seeder

/**
* Esegui i semi del database.
*
* @return void
*/
funzione pubblica run ()

Clienti :: Factory ()-> Count (20)-> create ();

Dati di seme nella tabella:

Esegui il seguente comando per eseguire la classe Seeder che inserirà 20 record falsi alla tabella dei clienti.

$ PHP Artisan DB: seed -Class = ClientiSeeder

Verrà visualizzato il seguente output se la semina del database viene eseguita correttamente. 20 record falsi verranno inseriti nella tabella dei clienti dopo aver eseguito il comando.

Successivamente, è possibile aprire la tabella dei clienti per verificare la semina del database è stata eseguita correttamente e sono stati aggiunti 20 record falsi. Apri la tabella dei clienti dall'URL, http: // localhost/phpmyadmin e controlla il contenuto della tabella. Otterrai il seguente output simile dopo aver aperto la tabella.

Conclusione:

L'attività di semina del database nel progetto Laravel è stata mostrata in questo tutorial creando una tabella semplice. L'aggiunta di una grande quantità di dati manualmente per scopi di test richiede tempo. La funzione di semina del database di Laravel semplifica questo compito. Dopo aver letto questo tutorial, spero che questo tutorial aiuterà gli utenti di Laravel a comprendere lo scopo di utilizzare correttamente la semina del database.