Straipsniai

Kas yra Laravel Eloquent, kaip juo naudotis, pamoka su pavyzdžiais

„Laravel PHP“ sistemoje yra „Eloquent Object Relational Mapper“ (ORM), kuri suteikia itin paprastą būdą bendrauti su duomenų baze. 

„Laravel“ ir „Eloquent“ padeda pagreitinti taikomųjų programų ir platformų kūrimą, suteikdami tinkamą daugelio problemų sprendimą. Reikalavimai patenkinami naudojant greitesnį vystymąsi, taip pat gerai sutvarkytą, daugkartinį, prižiūrimą ir keičiamo dydžio kodą. 

Kaip veikia iškalbingas

Kūrėjai gali dirbti Eloquent su keliomis duomenų bazėmis efektyviai naudojant ActiveMethod diegimą. Tai yra architektūrinis modelis, kai modelis, sukurtas modelio peržiūros valdiklio (MVC) struktūroje, atitinka duomenų bazės lentelę. Privalumas yra tas, kad modeliai atlieka įprastas duomenų bazės operacijas nekoduodami ilgų SQL užklausų. Šablonai leidžia pateikti duomenų užklausą lentelėse ir į lenteles įterpti naujus įrašus. Supaprastinamas kelių duomenų bazių, veikiančių skirtingose ​​sistemose, sinchronizavimo procesas. Jums nereikia rašyti SQL užklausų. Viskas, ką jums reikia padaryti, tai defiUžbaikite duomenų bazės lenteles ir ryšius tarp jų, o „Eloquent“ atliks likusį darbą.

Laravel paruošimas

Būtina įvertinti Eloquent ORM naudingumą ir suprasti ekosistemą. Veiksmai norint pradėti:

  1. Įdiekite Laravel iš getcomposer.org. Norėdami tai padaryti, vadovaukitės čia pateiktomis instrukcijomis
  2. Kūrimas migration naudojant konsolę Artisan
  3. Kurti šablonus eloquent
  4. paleisti i seed duomenų bazės

Artisan Console yra komandų eilutės sąsajos, įtrauktos į Laravel, pavadinimas. Pateikiamas rinkinys naudingų komandų, kurias galite naudoti kuriant programą. Jį varo galingas komponentas Symfony Console.

Norėdami pamatyti visų galimų „Artisan“ komandų sąrašą, galite naudoti sąrašo komandą:

php artisan list

Visos komandos pateikiamos su glaustais argumentų ir parinkčių aprašymu. Tai rodoma „pagalbos“ ekrane. Norėdami parodyti pagalbos ekraną, tiesiog prieš komandos pavadinimą įveskite „help“, kaip parodyta:

php artisan help migrate

Migration

Perkėlimas yra duomenų bazės valdymo procesas, vietoj to rašant PHP SQL. Suteikia galimybę duomenų bazėje pridėti versijos valdymą. 

Norėdami sukurti perkėlimą, tiesiog paleiskite šią komandą:

php artisan make:migration create_student_records

Taip sukuriamas perkėlimo failas. Teksto rengyklėje atidarykite failą, kurį ką tik sukūrėte aplanke database\migrations:

<?php
use IlluminateSupportFacadesSchema;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateDatabaseMigrationsMigration;

class CreateStudentRecordsTable extends Migration
{
    /**
    * Run the migrations.
    *
    * @return void
    */
    public function up()
    {
        Schema::create('student__records', function (Blueprint $table) {
            $table->increments('id');
            $table->timestamps();
        });
    }

    /**
    * Reverse the migrations.
    *
    * @return void
    */
    public function down()
    {
        Schema::dropIfExists('student__records');
    }
}

Kodas yra klasė su tuo pačiu pavadinimu "create student records“, ir turi du būdus: aukštyn ir žemyn. Up metodas turėtų pakeisti duomenų bazę; taigi, kai perkeliate savo duomenų bazę, bus vykdomas bet koks kodas, esantis aukštyn. Kita vertus, sumažinimo metodas turėtų atšaukti tuos duomenų bazės pakeitimus; taigi, kai tik paleisite rollback migration, metodas žemyn turėtų anuliuoti tai, ką padarė aukštyn metodas. Metodo viduje up yra schemų kūrimo priemonė, naudojama lentelėms kurti ir tvarkyti. Kas nutiks, jei atšauksite kai kuriuos perkėlimus? Viskas, ką jums reikia padaryti, tai įgyvendinti šią komandą:

php artisan migrate:rollback

Ir jis surinks paskutinį migration kuri buvo įgyvendinta. Be to, galite visiškai atkurti duomenų bazę paleisdami:

php artisan migrate:reset

Tai atšauks visus jūsų perkėlimus.

Defimodelių Eloquent

Kai duomenų bazės perkėlimas bus baigtas, kitas procesas yra seedingEloquent pradeda žaisti nuo seeding įterpia įrašus į mūsų duomenų bazę. Taigi prieš pildydami duomenų bazę turėsite sukurti šablonus. Kiekviena duomenų bazės lentelė turi atitinkamą modelį, kuris naudojamas sąveikai su ta lentele. Šablonai leidžia pateikti užklausą dėl duomenų lentelėse, taip pat į lentelę įterpti naujų įrašų. Lengviausias būdas sukurti modelį yra naudoti šią komandą:

php artisan make:model Student
Žemiau pateiktas šablono pavyzdys Student, kurį galima naudoti norint gauti ir saugoti informaciją iš mūsų studentų duomenų bazės lentelės:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Kai generuojate modelį ir tuo pat metu norite generuoti duomenų bazės perkėlimą, galite naudoti parinktį –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Sėjamosios

Bendrosios sėjamosios yra specialus klasių rinkinys, leidžiantis mums vėl ir vėl pildyti mūsų duomenų bazę tiksliai tais pačiais duomenimis. Įgyvendiname šią komandą:

php artisan make:seeder StudentsRecordSeeder

Teksto rengyklėje, po sėklų aplanku, atidarykite naujai sukurtą failą su failo pavadinimu: StudentsRecordSeeder.php. Kaip matote, tai tik labai paprasta klasė su vienu metodu run

<?php
use IlluminateDatabaseSeeder;

class StudentsRecordSeeder extends Seeder
{
    /**
    * Run the database seeds
    * @return void
    */

    public function run()
    {
        //
    }
}

Kodas yra tik konsolės komandų klasės įvyniojimas, specialiai sukurtas padėti atlikti užduotį seeding. Redaguokite kodą ir išsaugokite jį.

Inovacijų naujienlaiškis
Nepraleiskite svarbiausių naujienų apie naujoves. Prisiregistruokite, kad gautumėte juos el.
public function run()
{
    echo 'Seeding!';
}

Ir einame į terminalą:

php artisan db:seed --class=StudentsRecordSeeder

Dabar galite užpildyti lentelę kai kuriais įrašais ir paleisti:

php artisan db:seed --class=class=StudentsRecordSeeder

Čia galite nuolat ištrinti, pridėti, keisti DB įrašus, tada atkurti juos paprasta komanda.

CRUD su Laravel Eloquent

CRUD operacijos su Laravel Eloquent Object-relational Mapper (ORM) palengvina Laravel kūrėjams darbą su keliomis duomenų bazėmis. Jis atlieka kūrimo, skaitymo, atnaujinimo ir ištrynimo (CRUD) operacijas ir susieja objektų modelius į duomenų bazių lenteles. Tvarko visas duomenų bazių sąveikas, reikalingas CRUD operacijoms.

Rekordų kūrimas

Norėdami įterpti naują įrašą į duomenų bazę, galite naudoti ::create metodą.

student_record::create(array(
    'first_name' => 'John',
    'last_name'  => 'Doe',
    'student_rank' => 1
));

Be paprasto kūrimo metodo, parodyto aukščiau, taip pat galite sukurti naują objektą ir suteikti jam skirtingus atributus. Tada galite iškviesti funkciją save () ir paleisti kodą. Metodai kaip firstOrCreate() arba firstOrNew() yra kitos įrašų kūrimo parinktys. Tai leis jums rasti mokinį, turintį tam tikrų savybių; jei tas mokinys nerastas, sukursite jį duomenų bazėje arba sukursite naują egzempliorių.

Įrašų skaitymas

Naudodami Eloquent ORM galite rasti įrašus savo duomenų bazėje. Užklausos yra paprastos ir siūlo sklandų srautą. Norėdami sukurti pareiškimus:where, naudosite metodus get() Ir first(). Metodas first() grąžins tik vieną įrašą, o metodas get() grąžins įrašų masyvą. Taip pat metodas find() gali būti naudojamas su pirminių raktų masyvu, kuris grąžins atitinkančių įrašų rinkinį. Štai keletas pavyzdžių:

$student = Students::all();

Šį kodą gauna visi studentai. Nors šis kodas suranda konkretų studentą pagal ID:

$studentas = Studentai::rasti(1);

Be to, kaip parodyta toliau, kodas apibūdina mokinio paiešką pagal konkretų požymį.

$JohnDoe = Students::where('name', '=', 'John Doe')->first();

Naudojant get() metodą, šis kodas parodo, kaip rasti mokinį, kurio lygis viršija 5.

$rankStudents = Student::where('student_rank', '>', 5)->get();
Įrašyti atnaujinimą

Atnaujinti įrašus naudojant „Eloquent“ taip pat paprasta. Norėdami atnaujinti įrašą, tiesiog suraskite įrašą, kurį norite atnaujinti, redaguokite atributus ir išsaugokite. Pavyzdžiui, norėdami pakeisti John Doe mokinio pažymio lygį į 5, pirmiausia suraskite mokinį ir tada vykdykite išsaugojimo metodą.

$JohnDoe = Bear::where('name', '=', 'John Doe')->first();
$JohnDoe->danger_level = 5;
$JohnDoe->save();

Įrašymo metodas taip pat gali būti naudojamas atnaujinti modelius, kurie jau yra duomenų bazėje.

Ištrinti įrašus

„Iloquent“ gali pasigirti paprastu įrašų atnaujinimo procesu, tačiau su ištrynimu turi tą pačią istoriją. Yra dvi parinktys: ištraukti įrašus ir vykdyti trynimo metodą arba tiesiog naudoti naikinimo metodą. Norėdami rasti ir ištrinti įrašą, tiesiog paleiskite šias komandas:

$student = Students::find(1);
$student->delete();

Norėdami ištrinti įrašą ir kelis įrašus, vykdomos komandos:

Students::destroy(1);
Students::destroy(1, 2, 3);

Atminkite, kad sunaikinimo parametrai yra tik pirminiai raktai, skirtingai nei trynimo metodas, kuris gali priimti bet kurį duomenų bazės stulpelį.

Norėdami rasti ir ištrinti visus 10 lygio mokinius.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Inovacijų naujienlaiškis
Nepraleiskite svarbiausių naujienų apie naujoves. Prisiregistruokite, kad gautumėte juos el.

Naujausi straipsniai

Naujoviška intervencija į išplėstinę realybę su „Apple“ žiūrovu Katanijos poliklinikoje

Katanijos poliklinikoje buvo atlikta oftalmoplastikos operacija naudojant „Apple Vision Pro“ reklaminę peržiūrą…

3 gegužės 2024

Vaikų spalvinimo puslapių privalumai – magijos pasaulis įvairaus amžiaus žmonėms

Lavindami smulkiosios motorikos įgūdžius dažydami, vaikai paruošiami sudėtingesniems įgūdžiams, pavyzdžiui, rašymui. Norėdami nuspalvinti…

2 gegužės 2024

Ateitis yra čia: kaip laivybos pramonė sukelia pasaulinės ekonomikos revoliuciją

Karinio jūrų laivyno sektorius yra tikra pasaulinė ekonominė galia, kuri pasiekė 150 mlrd.

1 gegužės 2024

Leidėjai ir OpenAI pasirašo sutartis dėl dirbtinio intelekto apdorojamos informacijos srauto reguliavimo

Praėjusį pirmadienį „Financial Times“ paskelbė apie susitarimą su „OpenAI“. FT licencijuoja savo pasaulinio lygio žurnalistiką…

30 balandis 2024