✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Kuidas teha andmebaasi külvamist Laravelis

32

Varem olen avaldanud artikli Faker Library abil artikli PHP andmebaasi külvamiseks. Seda teemat uurides leidsin, et Laravel kasutab sama raamatukogu ka andmebaasi külvamiseks. Kuna olen sel teemal kirjutanud artikli PHP-le, otsustasin kirjutada postituse ka Laraveli andmebaasi külvamise kohta. Seda seetõttu, et Laravel kasutab andmebaasi külvamiseks oma protsessi.

Mis on andmebaaside külvamine?

Andmebaasi külvamine tähendab, et täitke andmebaasi tabelid testandmetega programmiliselt. Selle lähenemisviisi abil saab mõne minuti jooksul andmebaasi sisestada tuhandeid kirjeid. See on tõhus viis, mitte käsitsi. Võimalik, et soovite rakenduse testimiseks näivaid andmeid ja andmebaasi külvamine programmi kaudu säästab tonni aega.

Fakeri raamatukogu

Faker on avatud lähtekoodiga teek, mis genereerib teie rakenduse andmebaasi jaoks võltsandmeid. Fakeri abil saab paari minuti jooksul sisestada andmebaasi tuhandeid kirjeid. See teek salvestab arendajatele igava andmesisestustöö. Võite saada peaaegu kõiki andmeid, mida soovite. Raamatukogu genereerib võltsitud e-posti aadressi, nime, mobiilinumbri, sõnad, laused, lõigud, juhuslikud numbrid jne. Võite lugeda, milliseid andmeid nad dokumentatsioonis esitavad .

Laravel installib selle raamatukogu oma keskmesse. See tähendab, et te ei pea seda eraldi installima. Nagu öeldud, vaatame, kuidas Laravelis andmebaasi külvamist teha.

Alustamine

Alustamiseks koostan "klientide" tabeli veergude nime, e-posti aadressi ja elulookirjeldusega. Näeme ühe tabeli külvamise protsessi. Samamoodi saavad kasutajad külvata nii palju tabeleid kui nad tahavad.

Looge klientide tabeli jaoks migreerimine käsuga:

php artisan make:migration create_customers_table

Avage migratsioonifail ja lisage veerud meetodile „üles", nagu allpool näidatud.

public function up()
{
    Schema::create('customers', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('email');
        $table->text('bio');
        $table->timestamps();
    });
}

Käivitage käsk migrate, mis loob teie andmebaasi ‘klientide’ tabeli.

php artisan migrate

Seejärel looge mudel "Klient", mis kaardistatakse tabelisse "Kliendid". Laravel 8.x käivitamisel luuakse teie mudelid kataloogis ‘App / Models’. Selle õpetuse jaoks eeldan, et kasutate Laravel 8.x-i. Laraveli vanemas versioonis peate kohandama mudeli teed.

php artisan make:model Customer

Andmebaasi külvamine Laravelis

Laraveli andmebaasi külvamiseks peate järgima mõnda sammu, mis on külvikute kirjutamine, mudelitehase loomine ja külvikute käitamine. Teeme seda ükshaaval.

Külvikute kirjutamine

Kui vaatate Laraveli failisüsteemi, märkate kataloogi database/seeders. Kõik seemneklassid lähevad sellesse kataloogi. Seemneklassis on runmeetod, kust saate andmed tabelisse sisestada.

Tehke seemneklassi CustomerSeeder käsuga:

php artisan make:seeder CustomerSeeder

Pärast selle käsu käivitamist peaksite nägema CustomerSeeder.phpall loodud faili database/seeders. Avage see fail ja runlisage funktsioonile allolev kood.

public function run()
{
    AppModelsCustomer::factory()->count(50)->create()->each(function ($customer) {
        $customer->save();
    });
}

Siin helistan kliendivabrikule, mille loome järgmises etapis. Pange tähele, et andsin väärtusele 50 loenduse meetodile. See tähendab, et tabelisse „kliendid” tuleks lisada 50 rida. Reguleerige seda väärtust vastavalt oma soovile.

Tehaste loomine

Kood, kuhu olen kirjutanud, CustomerSeederotsib testiandmete saamiseks tehast. See tähendab, et peame looma mudelitehase. Annan tehasele nime CustomerFactory. Mudelitehase loomiseks käivitage käsk.

php artisan make:factory CustomerFactory --model=Customer

See käsk loob kataloogi CustomerFactory.phpsisekülje database/factories. Avage see fail ja genereerige määratlusmeetodile testandmed järgmiselt.

public function definition()
{
    return [
        'name' => $this->faker->name,
        'email' => $this->faker->unique()->safeEmail,
        'bio' => $this->faker->text,
    ];
}

Ülaltoodud massiiv tagastab bio jaoks juhuslikult valitud nime, e-posti aadressi ja teksti.

Töötavad külvikud

Seadsime kõik koos külviku ja tehasega. Nüüd käivitage meie külvik, kasutades allolevat käsku.

php artisan db:seed --class=CustomerSeeder

Kontrollige oma klientide tabelit ja sinna peaks olema sisestatud 50 näivakirjet.

Ülaltoodud käsk käivitab ühe külviku, millest me sõnaselgelt möödusime. Oletame, et soovite luua mitu külvikut ja käitada neid kõiki ühe käsu abil. Sellistel juhtudel peaksite helistama oma külvikutele, DatabaseSeedermis asuvad samas kataloogis database/seeders.

public function run()
    {
        $this->call(CustomerSeeder::class);
        // call as many seeders you wish
    }

Kasutaja saab luua nii palju külvikuid kui tema nõuded ja helistada neile selle runmeetodi abil.

Lõpuks käivitage külvikud, kasutades allolevat käsku.

php artisan db:seed

See kutsub runmeetodi järgi kõik külvikud ja täidab selle.

Loodan, et saate aru andmebaaside külvamisest Laravelis. Tahaksin kuulda teie mõtteid ja ettepanekuid allpool olevas kommentaaride jaotises.

seotud artiklid

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem