Artikulo

Ano ang Laravel Eloquent, kung paano gamitin ito, tutorial na may mga halimbawa

Kasama sa Laravel PHP framework ang Eloquent Object Relational Mapper (ORM), na nagbibigay ng napakadaling paraan upang makipag-usap sa isang database. 

Tumutulong ang Laravel at Eloquent na mapabilis ang pag-develop ng application at platform, na nagbibigay ng sapat na solusyon sa karamihan ng mga problema. Ang mga kinakailangan ay tinutugunan nang may mas mabilis na pag-unlad, pati na rin ang maayos na pagkakaayos, magagamit muli, napapanatiling, at nasusukat na code. 

Paano gumagana ang Eloquent

Maaaring magtrabaho ang mga developer Eloquent na may maraming database nang mahusay gamit ang isang pagpapatupad ng ActiveMethod. Ito ay isang pattern ng arkitektura kung saan ang modelong ginawa sa istruktura ng Model-View-Controller (MVC) ay tumutugma sa isang talahanayan sa database. Ang kalamangan ay ang mga modelo ay nagsasagawa ng mga karaniwang operasyon ng database nang walang coding ng mahabang SQL query. Binibigyang-daan ka ng mga template na mag-query ng data sa mga talahanayan at magpasok ng mga bagong tala sa mga talahanayan. Ang proseso ng pag-synchronize ng maramihang mga database na tumatakbo sa iba't ibang mga sistema ay pinasimple. Hindi mo kailangang magsulat ng mga query sa SQL. Ang kailangan mo lang gawin ay defiTapusin ang mga talahanayan ng database at ang mga ugnayan sa pagitan ng mga ito, at gagawin ng Eloquent ang natitirang gawain.

Paghahanda ng Laravel

Ang pagpapahalaga sa utility ng Eloquent ORM, at ang pag-unawa sa ecosystem ay kinakailangan. Mga hakbang upang makapagsimula:

  1. I-install ang Laravel mula sa getcomposer.org, para gawin ito sundin ang mga tagubilin dito
  2. Lumikha migration gamit ang console Artisan
  3. Lumikha ng mga template eloquent
  4. tumakbo i seed ng database

Artisan Console ay ang pangalan ng interface ng command line na kasama sa Laravel. Nagbibigay ng isang hanay ng mga kapaki-pakinabang na command na gagamitin habang binubuo ang iyong application. Ito ay hinihimok ng makapangyarihang sangkap Symfony Console.

Para makakita ng listahan ng lahat ng available na Artisan command, maaari mong gamitin ang list command:

php artisan list

Ang lahat ng mga utos ay may maigsi na paglalarawan ng mga argumento at opsyon nito. Ito ay ipinapakita sa isang "help" na screen. Para magpakita ng help screen, unahan lang ang command name ng "help" gaya ng ipinapakita:

php artisan help migrate

Migration

Ang Migration ay isang proseso ng pamamahala ng database sa pamamagitan ng pagsulat ng PHP sa halip SQL. Nagbibigay ng paraan upang magdagdag ng kontrol sa bersyon sa database. 

Para gumawa ng migration, patakbuhin lang ang sumusunod na command:

php artisan make:migration create_student_records

Lumilikha ito ng migration file. Sa iyong text editor, buksan ang file na kakagawa mo lang 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 ay isang klase na may parehong pangalan 'create student records', at may dalawang pamamaraan: pataas at pababa. Ang paraan ng up ay dapat gumawa ng mga pagbabago sa database; kaya sa tuwing i-migrate mo ang iyong database, ang anumang code sa up na paraan ay isasagawa. Sa kabilang banda, ang down na paraan ay dapat ibalik ang mga pagbabago sa database; kaya sa tuwing pinapatakbo mo ang rollback ng migration, dapat i-undo ng down na paraan kung ano ang ginawa ng pataas na paraan. Sa loob ng pamamaraan up mayroong tagabuo ng schema na ginagamit upang lumikha at manipulahin ang mga talahanayan. Ano ang mangyayari kung kanselahin mo ang ilan sa iyong mga paglipat? Ang kailangan mo lang gawin ay ipatupad ang sumusunod na utos:

php artisan migrate:rollback

At kukunin niya ang huli migration na ipinatupad. Gayundin, maaari mong ganap na maibalik ang database sa pamamagitan ng pagpapatakbo ng:

php artisan migrate:reset

Kakanselahin nito ang lahat ng iyong paglilipat.

Defition ng mga modelo ng Eloquent

Matapos makumpleto ang paglilipat ng database, ang susunod na proseso ay ang seedingEloquent pumapasok sa laro mula noong seeding ay naglalagay ng mga tala sa aming database. Kaya kakailanganin mong lumikha ng mga template bago i-populate ang database. Ang bawat talahanayan ng database ay may kaukulang modelo na ginagamit upang makipag-ugnayan sa talahanayang iyon. Binibigyang-daan ka ng mga template na i-query ang data sa iyong mga talahanayan, pati na rin ang pagpasok ng mga bagong tala sa talahanayan. Ang pinakamadaling paraan upang i-instantiate ang modelo ay ang paggamit ng sumusunod na command:

php artisan make:model Student
Ang isang halimbawa ng isang template ay ipinapakita sa ibaba Student, na maaaring magamit upang kunin at mag-imbak ng impormasyon mula sa talahanayan ng database ng aming mag-aaral:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Kapag nakabuo ka ng isang modelo at sa parehong oras na gusto mong bumuo ng isang database migration, maaari mong gamitin ang opsyon –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Mga seeder

Ang mga pangkalahatang seeder ay isang espesyal na hanay ng mga klase na nagbibigay-daan sa amin na punan ang aming database nang paulit-ulit gamit ang eksaktong parehong data. Ipinapatupad namin ang sumusunod na utos:

php artisan make:seeder StudentsRecordSeeder

Sa text editor, sa ilalim ng seeds folder, buksan ang bagong likhang file na may filename: StudentsRecordSeeder.php. Tulad ng nakikita mo ito ay isang napaka-simpleng klase na may isang solong pamamaraan na tinatawag run🇧🇷

<?php
use IlluminateDatabaseSeeder;

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

    public function run()
    {
        //
    }
}

Ang code ay isang pambalot lamang sa isang console command class, partikular na binuo upang tumulong sa gawain ng seeding. I-edit ang code at pagkatapos ay i-save ito.

newsletter ng pagbabago
Huwag palampasin ang pinakamahalagang balita sa pagbabago. Mag-sign up upang matanggap ang mga ito sa pamamagitan ng email.
public function run()
{
    echo 'Seeding!';
}

At pumunta sa terminal:

php artisan db:seed --class=StudentsRecordSeeder

Ngayon ay maaari mong punan ang talahanayan ng ilang mga entry at patakbuhin ang:

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

Dito maaari mong ipagpatuloy ang pagtanggal, pagdaragdag, pagbabago ng mga entry sa DB, pagkatapos ay i-restore ang mga ito gamit ang isang simpleng command.

CRUD kasama si Laravel Eloquent

Ang mga pagpapatakbo ng CRUD na may Laravel Eloquent object-relational mapper (ORM) ay nagpapadali para sa mga developer ng Laravel na magtrabaho kasama ang maraming database. Nagsasagawa ito ng mga operasyong lumikha, magbasa, mag-update, at magtanggal (CRUD), at nagmamapa ng mga modelo ng object sa mga talahanayan ng database. Pinangangasiwaan ang lahat ng mga pakikipag-ugnayan sa database na kinakailangan para sa mga pagpapatakbo ng CRUD.

Paglikha ng mga talaan

Maaari mong gamitin ang ::create method para magpasok ng bagong record sa database.

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

Bilang karagdagan sa simpleng paraan ng paglikha na ipinakita sa itaas, maaari ka ring lumikha ng isang bagong bagay at bigyan ito ng iba't ibang mga katangian. Pagkatapos, maaari mong tawagan ang save() function at patakbuhin ang code. Mga pamamaraan tulad ng firstOrCreate() o firstOrNew() ay iba pang mga opsyon para sa paglikha ng mga talaan. Ang mga ito ay magbibigay-daan sa iyo na makahanap ng isang mag-aaral na may ilang mga katangian; kung hindi matagpuan ang mag-aaral na iyon, gagawa ka nito sa database o gagawa ng bagong instance.

Pagbasa ng mga tala

Gamit ang Eloquent ORM, mahahanap mo ang mga tala sa iyong database. Ang mga query ay simpleng binuo at nag-aalok ng maayos na daloy. Upang lumikha ng mga pahayag::where, gagamitin mo ang mga pamamaraan get() At first(). Ang paraan first() ay magbabalik lamang ng isang tala, habang ang pamamaraan get() ay magbabalik ng isang loopable array ng mga record. Gayundin, ang pamamaraan find() ay maaaring gamitin sa isang hanay ng mga pangunahing key, na magbabalik ng isang koleksyon ng mga katugmang talaan. Narito ang ilang halimbawa:

$student = Students::all();

Nakukuha ng code na ito ang lahat ng mag-aaral. Habang ang sumusunod na code ay nakakahanap ng isang partikular na mag-aaral sa pamamagitan ng ID:

$estudyante = Students::find(1);

Gayundin, tulad ng ipinapakita sa ibaba, inilalarawan ng code ang paghahanap para sa isang mag-aaral batay sa isang partikular na katangian.

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

Para sa get() method, ipinapakita ng code na ito kung paano maghanap ng mag-aaral na may level sa itaas 5.

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

Ang pag-update ng mga talaan gamit ang Eloquent ay kasingdali lang. Para mag-update ng record, hanapin lang ang record na gusto mong i-update, i-edit ang mga attribute at i-save. Halimbawa, upang baguhin ang antas ng grado ng mag-aaral ni John Doe sa 5, hanapin muna ang mag-aaral at pagkatapos ay isagawa ang paraan ng pag-save.

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

Ang paraan ng pag-save ay maaari ding gamitin upang i-update ang mga modelo na mayroon na sa database.

Tanggalin ang mga tala

Ipinagmamalaki ni Eloquent ang madaling proseso ng pag-update ng record, ngunit mayroon itong parehong kuwento sa pagtanggal. Mayroong dalawang mga pagpipilian: pull-out na mga talaan at isagawa ang paraan ng pagtanggal, o gamitin lamang ang paraan ng pagsira. Para maghanap at magtanggal ng record, patakbuhin lang ang mga sumusunod na command:

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

Upang tanggalin ang isang tala at maramihang mga tala, ang mga utos ay pinapatakbo:

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

Tandaan na ang mga parameter ng pagsira ay mga pangunahing susi lamang hindi katulad ng paraan ng pagtanggal na maaaring tumanggap ng anumang column ng database.

Upang mahanap at tanggalin ang lahat ng mga mag-aaral sa itaas ng antas 10.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
newsletter ng pagbabago
Huwag palampasin ang pinakamahalagang balita sa pagbabago. Mag-sign up upang matanggap ang mga ito sa pamamagitan ng email.

Kamakailang Mga Artikulo

Pumirma ang mga publisher at OpenAI ng mga kasunduan para i-regulate ang daloy ng impormasyong pinoproseso ng Artificial Intelligence

Noong nakaraang Lunes, inihayag ng Financial Times ang isang deal sa OpenAI. Nilisensyahan ng FT ang world-class na pamamahayag nito...

Abril 30 2024

Mga Online na Pagbabayad: Narito Kung Paano Ka Binabayaran ng Mga Serbisyo ng Streaming Magpakailanman

Milyun-milyong tao ang nagbabayad para sa mga serbisyo ng streaming, na nagbabayad ng buwanang bayad sa subscription. Karaniwang opinyon na ikaw ay…

Abril 29 2024

Itinatampok ng Veeam ang pinakakomprehensibong suporta para sa ransomware, mula sa proteksyon hanggang sa pagtugon at pagbawi

Ang Coveware ng Veeam ay patuloy na magbibigay ng mga serbisyo sa pagtugon sa insidente ng cyber extortion. Mag-aalok ang Coveware ng mga kakayahan sa forensics at remediation...

Abril 23 2024

Green and Digital Revolution: Kung Paano Binabago ng Predictive Maintenance ang Industriya ng Langis at Gas

Binabago ng predictive maintenance ang sektor ng langis at gas, na may makabago at proactive na diskarte sa pamamahala ng halaman.…

Abril 22 2024