Artikulo

Unsa ang Laravel Eloquent, kung giunsa kini paggamit, panudlo nga adunay mga pananglitan

Ang Laravel PHP framework naglakip sa Eloquent Object Relational Mapper (ORM), nga naghatag ug labing sayon ​​nga paagi sa pagpakigsulti sa usa ka database. 

Ang Laravel ug Eloquent nagtabang sa pagpadali sa pag-uswag sa aplikasyon ug plataporma, nga naghatag ug igong solusyon sa kadaghanang problema. Gitubag ang mga kinahanglanon nga adunay mas paspas nga pag-uswag, ingon man maayo nga pagkahan-ay, magamit pag-usab, mapadayon, ug masukod nga code. 

Giunsa pagtrabaho ang Eloquent

Mahimong magtrabaho ang mga developers Eloquent nga adunay daghang mga database nga epektibo gamit ang usa ka pagpatuman sa ActiveMethod. Kini usa ka pattern sa arkitektura diin ang modelo nga gihimo sa istruktura sa Model-View-Controller (MVC) katumbas sa usa ka lamesa sa database. Ang kaayohan mao nga ang mga template naghimo sa kasagaran nga mga operasyon sa database nga wala’y pag-coding sa taas nga mga pangutana sa SQL. Gitugotan ka sa mga template sa pagpangutana sa datos sa mga lamesa ug pagsulud sa bag-ong mga rekord sa mga lamesa. Ang proseso sa pag-synchronize sa daghang mga database nga nagdagan sa lainlaing mga sistema gipahapsay. Dili nimo kinahanglan nga isulat ang mga pangutana sa SQL. Ang kinahanglan nimong buhaton mao defiTapusa ang mga lamesa sa database ug ang mga relasyon tali kanila, ug ang Eloquent ang mobuhat sa nahabilin nga trabaho.

Pag-andam sa Laravel

Ang pag-apresyar sa kapuslanan sa Eloquent ORM, ug ang pagsabut sa ekosistema usa ka kinahanglan. Mga lakang sa pagsugod:

  1. I-install ang Laravel gikan sa getcomposer.org, aron mahimo kini sunda ang mga panudlo dinhi
  2. Paghimo migration gamit ang console Artisan
  3. Paghimo og mga templates eloquent
  4. dagan i seed sa database

Artisan Console mao ang ngalan sa command line interface nga gilakip sa Laravel. Naghatag usa ka hugpong sa mapuslanon nga mga sugo nga gamiton samtang nagpalambo sa imong aplikasyon. Gimaneho kini sa kusgan nga sangkap Symfony Console.

Aron makita ang usa ka lista sa tanan nga magamit nga mga mando sa Artisan, mahimo nimong gamiton ang list command:

php artisan list

Ang tanan nga mga sugo moabut uban ang usa ka mubo nga paghulagway sa mga argumento ug mga kapilian niini. Gipakita kini sa usa ka "tabang" nga screen. Aron ipakita ang usa ka screen sa tabang, unaha lang ang ngalan sa command gamit ang "tabang" sama sa gipakita:

php artisan help migrate

Migration

Ang paglalin usa ka proseso sa pagdumala sa database pinaagi sa pagsulat sa PHP SQL. Naghatag usa ka paagi aron madugang ang pagkontrol sa bersyon sa database. 

Aron makahimo usa ka paglalin, pagdagan lang ang mosunud nga mando:

php artisan make:migration create_student_records

Kini nagmugna sa migration file. Sa imong text editor, ablihi ang file nga bag-o lang nimo gibuhat sa folder 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');
    }
}

Ang code usa ka klase nga adunay parehas nga ngalan 'create student records', ug adunay duha ka pamaagi: pataas ug paubos. Ang pataas nga pamaagi kinahanglan maghimo mga pagbag-o sa database; mao nga sa matag higayon nga molalin ka sa imong database, bisan unsa nga code sa up nga pamaagi ipatuman. Sa laing bahin, ang down method kinahanglan nga ibalik ang mga pagbag-o sa database; busa sa matag higayon nga modagan ka sa rollback della migration, ang pamaagi sa ubos kinahanglan nga bawion kung unsa ang gihimo sa pataas nga pamaagi. Sa sulod sa pamaagi up naa ang schema builder nga gigamit sa paghimo ug pagmaniobra sa mga lamesa. Unsa ang mahitabo kung imong kanselahon ang pipila sa imong mga paglalin? Ang kinahanglan nimong buhaton mao ang pagpatuman sa mosunud nga mando:

php artisan migrate:rollback

Ug kolektahon niya ang kataposan migration nga gipatuman. Usab, mahimo nimong hingpit nga ibalik ang database pinaagi sa pagpadagan:

php artisan migrate:reset

Makakanselar kini sa tanan nimong mga paglalin.

Defition sa mga modelo sa Eloquent

Human makompleto ang paglalin sa database, ang sunod nga proseso mao ang seedingEloquent moabut sa pagdula sukad sa seeding nagsal-ot sa mga rekord sa among database. Mao nga kinahanglan nimo nga maghimo mga templates sa dili pa i-populate ang database. Ang matag lamesa sa database adunay katugbang nga modelo nga gigamit aron makig-uban sa kana nga lamesa. Gitugotan ka sa mga templates sa pagpangutana sa datos sa imong mga lamesa, ingon man sa pagsal-ot sa bag-ong mga rekord sa lamesa. Ang pinakasayon ​​​​nga paagi sa paghimo sa modelo mao ang paggamit sa mosunod nga sugo:

php artisan make:model Student
Usa ka pananglitan sa usa ka template gipakita sa ubos Student, nga magamit sa pagkuha ug pagtipig sa impormasyon gikan sa lamesa sa database sa among estudyante:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Kung makamugna ka og usa ka modelo ug sa samang higayon gusto nimo nga makamugna og database migration, mahimo nimong gamiton ang opsyon –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Mga magpupugas

Ang kinatibuk-ang mga seeders usa ka espesyal nga hugpong sa mga klase nga nagtugot kanamo sa pagpuno sa among database nga balik-balik sa parehas nga datos. Gipatuman namo ang mosunod nga sugo:

php artisan make:seeder StudentsRecordSeeder

Sa text editor, sa ilawom sa seeds folder, ablihi ang bag-ong nahimo nga file nga adunay filename: StudentsRecordSeeder.php. Sama sa imong nakita, kini usa lamang ka yano nga klase nga adunay usa ka paagi nga gitawag run().

<?php
use IlluminateDatabaseSeeder;

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

    public function run()
    {
        //
    }
}

Ang code usa lamang ka wrapper sa palibot sa usa ka console command class, partikular nga gitukod aron makatabang sa buluhaton sa seeding. I-edit ang code ug dayon i-save kini.

newsletter sa kabag-ohan
Ayaw kalimti ang labing hinungdanon nga balita sa kabag-ohan. Pag-sign up aron madawat sila pinaagi sa email.
public function run()
{
    echo 'Seeding!';
}

Ug moadto sa terminal:

php artisan db:seed --class=StudentsRecordSeeder

Karon mahimo nimong pun-on ang lamesa nga adunay pipila ka mga entri ug pagdagan:

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

Dinhi mahimo nimong ipadayon ang pagtangtang, pagdugang, pag-usab sa mga entry sa DB, dayon ibalik kini sa usa ka yano nga mando.

CRUD uban ni Laravel Eloquent

Ang mga operasyon sa CRUD uban sa Laravel Eloquent object-relational mapper (ORM) nagpasayon ​​sa mga developer sa Laravel sa pagtrabaho uban sa daghang mga database. Gihimo niini ang paghimo, pagbasa, pag-update, ug pagtangtang (CRUD) nga mga operasyon, ug mapa ang mga modelo sa butang sa mga lamesa sa database. Nagdumala sa tanan nga mga interaksiyon sa database nga gikinahanglan alang sa mga operasyon sa CRUD.

Paghimo sa mga rekord

Mahimo nimong gamiton ang ::create nga pamaagi aron makasulod ug bag-ong record sa database.

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

Dugang pa sa yano nga paagi sa paglalang nga gipakita sa ibabaw, mahimo ka usab nga maghimo usa ka bag-ong butang ug hatagan kini lainlaing mga kinaiya. Dayon, mahimo nimong tawagan ang save() function ug ipadagan ang code. Mga pamaagi sama sa firstOrCreate() o firstOrNew() mao ang ubang mga kapilian sa paghimo og mga rekord. Kini magtugot kanimo sa pagpangita sa usa ka estudyante nga adunay piho nga mga hiyas; kung kana nga estudyante dili makit-an, himuon nimo kini sa database o maghimo usa ka bag-ong higayon.

Pagbasa sa mga rekord

Gamit ang Eloquent ORM, makit-an nimo ang mga rekord sa imong database. Ang mga pangutana kay yanong gihimo ug nagtanyag ug hapsay nga dagan. Sa paghimo og mga pahayag::where, imong gamiton ang mga pamaagi get() Ug first(). Ang pamaagi first() mobalik lamang sa usa ka rekord, samtang ang pamaagi get() ibalik ang usa ka loopable array sa mga rekord. Usab, ang pamaagi find() mahimong gamiton uban sa usa ka han-ay sa mga nag-unang yawe, nga mobalik sa usa ka koleksyon sa mga tugma nga mga rekord. Ania ang pipila ka mga pananglitan:

$student = Students::all();

Kini nga code makakuha sa tanan nga mga estudyante. Samtang ang mosunud nga code nakit-an ang usa ka piho nga estudyante pinaagi sa ID:

$estudyante = Estudyante::pangitaa(1);

Usab, sama sa gipakita sa ubos, ang code naghulagway sa pagpangita sa usa ka estudyante base sa usa ka piho nga kinaiya.

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

Alang sa get() nga pamaagi, kini nga code nagpakita kung giunsa pagpangita ang usa ka estudyante nga adunay lebel nga labaw sa 5.

$rankStudents = Student::where('student_rank', '>', 5)->get();
Pag-update sa pagrekord

Ang pag-update sa mga rekord gamit ang Eloquent kay sayon ​​ra. Aron ma-update ang usa ka rekord, pangitaa lang ang rekord nga gusto nimo i-update, usba ang mga hiyas ug i-save. Pananglitan, aron usbon ang lebel sa grado sa estudyante ni John Doe ngadto sa 5, pangitaa una ang estudyante ug dayon i-execute ang save method.

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

Ang paagi sa pagluwas mahimo usab nga gamiton sa pag-update sa mga modelo nga anaa na sa database.

Pagtangtang sa mga rekord

Gipanghambog ni Eloquent ang dali nga proseso sa pag-update sa rekord, apan kini adunay parehas nga istorya sa pagtangtang. Adunay duha ka mga kapilian: pull-out nga mga rekord ug ipatuman ang paagi sa pagtangtang, o gamita lang ang paagi sa paglaglag. Aron makapangita ug makatangtang sa usa ka rekord, padagana lang ang mosunod nga mga sugo:

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

Aron matangtang ang usa ka rekord ug daghang mga rekord, ang mga mando gipadagan:

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

Timan-i nga ang mga parametro sa paglaglag kay mga nag-unang yawe lamang dili sama sa paagi sa pagtangtang nga makadawat sa bisan unsang kolum sa database.

Para pangitaon ug papason ang tanang estudyante nga labaw sa level 10.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
newsletter sa kabag-ohan
Ayaw kalimti ang labing hinungdanon nga balita sa kabag-ohan. Pag-sign up aron madawat sila pinaagi sa email.

Bag-ong mga artikulo

Giunsa pagkonsolida ang datos sa Excel

Ang bisan unsang operasyon sa negosyo nagpatunghag daghang datos, bisan sa lainlaing mga porma. Manu-mano nga isulod kini nga datos gikan sa usa ka Excel sheet aron…

14 Mayo 2024

Cisco Talos quarterly analysis: corporate emails nga gitarget sa mga kriminal Paggama, Edukasyon ug Healthcare mao ang labing apektado nga mga sektor

Ang pagkompromiso sa mga email sa kompanya misaka labaw sa doble sa unang tulo ka bulan sa 2024 kumpara sa katapusang quarter sa…

14 Mayo 2024

Interface segregation principle (ISP), ikaupat nga SOLID nga prinsipyo

Ang prinsipyo sa interface segregation maoy usa sa lima ka SOLID nga prinsipyo sa object-oriented nga disenyo. Ang usa ka klase kinahanglan adunay…

14 Mayo 2024

Giunsa ang labing maayo nga pag-organisar sa datos ug mga pormula sa Excel, alang sa usa ka maayo nga pagtuki

Ang Microsoft Excel mao ang himan sa pakisayran alang sa pagtuki sa datos, tungod kay nagtanyag kini daghang mga bahin alang sa pag-organisar sa mga set sa datos,…

14 Mayo 2024

Positibo nga konklusyon para sa duha ka importante nga Walliance Equity Crowdfunding nga mga proyekto: Jesolo Wave Island ug Milano Via Ravenna

Walliance, SIM ug plataporma sa mga lider sa Europe sa natad sa Real Estate Crowdfunding sukad 2017, nagpahibalo sa pagkompleto…

13 Mayo 2024

Unsa ang Filament ug kung giunsa paggamit ang Laravel Filament

Ang filament usa ka "gipadali" nga balangkas sa pagpalambo sa Laravel, nga naghatag daghang mga sangkap nga puno sa stack. Gidisenyo kini aron mapasimple ang proseso sa…

13 Mayo 2024

Ubos sa kontrol sa Artipisyal nga Kaalam

«Kinahanglan kong mobalik aron makompleto ang akong ebolusyon: I-proyekto nako ang akong kaugalingon sa sulod sa kompyuter ug mahimong puro nga kusog. Sa dihang nahusay na sa…

10 Mayo 2024

Ang bag-ong artificial intelligence sa Google mahimong modelo sa DNA, RNA ug "tanan nga molekula sa kinabuhi"

Gipaila sa Google DeepMind ang usa ka gipaayo nga bersyon sa modelo sa artipisyal nga paniktik niini. Ang bag-ong gipaayo nga modelo naghatag dili lamang…

9 Mayo 2024

Basaha ang Innovation sa imong pinulongan

newsletter sa kabag-ohan
Ayaw kalimti ang labing hinungdanon nga balita sa kabag-ohan. Pag-sign up aron madawat sila pinaagi sa email.

Sunda kanato