Database Seeder i Laravel

Database Seeder i Laravel
Nettapplikasjonsdataene lagres permanent i databasen og er en viktig del av et webprosjekt. Noen ganger krever det å teste applikasjonen med dummy data. Denne oppgaven kan gjøres i Laravel -prosjektet ved hjelp av en database seeder. Laravel inneholder frøklasser for å legge til mange falske data raskt i databasen for testformål, og disse klassene lagres på stedet, Database/frøere. De Databaseseeder Klassen brukes som standard i Laravel for å bruke seeders -klasser. Måten til å seeddata i databasen ved å bruke frøklassene til Laravel er vist i denne opplæringen.

Forutsetninger:

Du må fullføre følgende oppgaver før du starter databasen Seeding Task.

  1. Lag et nytt Laravel -prosjekt som heter SeederProject. Her, komponisten har blitt brukt til å lage Laravel -prosjektet. Hvis komponist er ikke installert før da, du må installere den før du utfører følgende kommando.
    $ komponist Create-Project Laravel/Laravel SeederProject
  1. Gå til prosjektmappen.
    $ CD SeederProject
  2. Alle eksempler på denne opplæringen er testet i Laravel versjon 9+. Sjekk den installerte versjonen av Laravel.
    $ PHP Artisan -Versjon

Oppsettdatabase:

Du må opprette en database i MySQL for å implementere databasen Seeding Task. Fullfør følgende oppgaver for å opprette en database og sette opp databasen for Laravel -prosjektet.

  1. Kjør følgende SQL -kommando for å opprette en database som heter db_seeder fra MySQL -ledeteksten.
    mysql> Opprett database db_seeder;
  2. Åpne .env Fil av Laravel -prosjektet og initialiserer verdiene for følgende informasjon basert på databasen.
    Db_connection = mysql
    Db_host = localhost
    DB_PORT = 3306
    Db_database = db_seeder
    Db_usname = 'brukernavn'
    Db_password = 'passord'

Lag modell- og migrasjonsfil for en tabell:

Gå til Laravel Project -mappen og kjør følgende kommando for å opprette modell- og migrasjonsfilen for Kunder bord.

$ PHP Artisan Make: Model Customer -M

Følgende utdata vises hvis modell- og migrasjonsfilen er opprettet med hell. Modellfilen som heter kunder.PHP og migrasjonsfilen som heter 2022_03_09_141143_create_customers_table.PHP er opprettet her. Migrasjonsfilen vil kreve å endre for å legge til feltene i kundetabellen basert på kravene i prosjektet, og det er gjort i neste del av opplæringen.

Endre migrasjonsfilen:

Åpne migrasjonsfilen fra stedet, Database/migrasjon, og endre filen med følgende innhold, i henhold til innholdet i migrasjonsfilen, 7 felt. Disse er ID, navn. adresse, e -post, kontakt_no. opprettet_at, og oppdaterte_atfelt.

Bruk Illuminate \ Database \ Migrations \ Migration;
Bruk Illuminate \ Database \ Schema \ Blueprint;
Bruk Illuminate \ Support \ Facades \ skjema;
Return ny klasse utvider migrasjonen

/**
* Kjør migrasjonene.
*
* @return void
*/
offentlig funksjon opp ()

Skjema :: create ('kunder', funksjon (blåkopi $ tabell)
$ tabell-> id ();
$ tabell-> String ("Navn", 30);
$ tabell-> tekst ("adresse");
$ tabell-> String ("E-post", 50);
$ tabell-> String ("contact_no", 30);
$ tabell-> tidsstempler ();
);

/**
* Omvend migrasjonene.
*
* @return void
*/
offentlig funksjon ned ()

Skjema :: dropifexists ('kunder');

;

Lag tabellen basert på migrasjonsfilen:

Kjør følgende migrate -kommando for å opprette Kunder Tabell inn i databasen. De falske dataene vil bli satt inn i denne tabellen.

$ php håndverker migrerer

Lag fabrikk for å generere falske data:

Kjør følgende kommando for å opprette fabrikken som vil bli brukt til å sette inn falske data i kundetabellen.

$ PHP Artisan Make: Factory CustomerFactory -Model = Kunder

Følgende utgang vises hvis fabrikken opprettes med suksess og Kundersfactory.PHP filen opprettes i Database/fabrikker Mappen til prosjektet.

Åpne Kundersfactory.PHP fil og endre filens innhold med følgende innhold. Tre Faker -egenskaper har blitt brukt til å legge til et falskt navn, e -post og adresse i skriptet. Disse er Faker-> Navn, Faker-> E-post, og Faker-> Adresse. En Faker -metode har blitt brukt til å generere det falske telefonnummeret. Navnet på metoden er Nufaly (). Denne metoden vil sette inn et falskt telefonnummer som starter med '880', eventuelle numeriske sifre på 4 tall etterfulgt av '-,' og eventuelle numeriske sifre på 6 tall etterfulgt av en annen '-.'

namespace database \ fabrikker;
Bruk Illuminate \ Database \ Eloquent \ Factories \ Factory;
Bruk app \ modeller \ kunder;
/**
* @Extends \ Illuminate \ Database \ Eloquent \ Factories \ Factory
*/
Klassekunder Factory utvider fabrikken

/**
* Definer modellens standardtilstand.
*
* @return -matrise
*/
beskyttet $ modell = kunder :: klasse;
Offentlig funksjonsdefinisjon ()

komme tilbake [
'navn' => $ this-> faker-> navn,
'adresse' => $ this-> faker-> adresse,
'E-post' => $ this-> faker-> e-post,
'Contact_no' => $ this-> faker-> numerify ('880-####-######')
];

Lag seeders -klasse:

Kjør følgende kommando for å opprette seeder -klassen som brukes til å kjøre fabrikken opprettet før.

$ PHP Artisan Make: Seeder Customerseeder

Følgende utgang vises hvis seeder -klassen opprettes med suksess og Kunder.PHP Klasse er opprettet i Database/frøere Mappen til prosjektet.

Åpne Kunderseeder.PHP fil og endre filens innhold med følgende innhold. I følge skriptet vil 20 falske poster bli satt inn etter utførelse av frø -kommandoen.

navneområdet database \ seeders;
Bruk Illuminate \ Database \ Console \ frø \ WithoutModelevents;
Bruk Illuminate \ Database \ seeder;
Bruk app \ modeller \ kunder;
Klassekunder

/**
* Kjør databasen frø.
*
* @return void
*/
offentlig funksjonskjøring ()

Kunder :: Factory ()-> Count (20)-> Create ();

Frødata i tabellen:

Kjør følgende kommando for å utføre seeder -klassen som vil sette inn 20 falske poster til kundens tabell.

$ PHP Artisan DB: Seed - -Class = Customerseeder

Følgende utdata vises hvis databasen er gjort med hell. 20 falske poster vil bli satt inn i kundetabellen etter å ha utført kommandoen.

Deretter kan du åpne kundebordet for å sjekke at databasen er gjort riktig, og 20 falske poster er lagt til. Åpne kundebordet fra nettadressen, http: // localhost/phpmyadmin, og sjekk innholdet i tabellen. Du får følgende lignende utdata etter åpning av tabellen.

Konklusjon:

Databasen Seeding -oppgaven i Laravel -prosjektet er vist i denne opplæringen ved å lage en enkel tabell. Å legge til en stor mengde data manuelt for testformål er tidkrevende. Databasen Seeding -funksjonen til Laravel gjør denne oppgaven enklere. Etter å ha lest denne opplæringen, håper jeg at denne opplæringen vil hjelpe Laravel -brukere til å forstå formålet med å bruke database -seeding riktig.