Հոդվածներ

Ինչ է Laravel Eloquent-ը, ինչպես օգտագործել այն, ձեռնարկ օրինակներով

Laravel PHP շրջանակը ներառում է Eloquent Object Relational Mapper (ORM), որն ապահովում է տվյալների բազայի հետ հաղորդակցվելու չափազանց հեշտ միջոց: 

Laravel-ը և Eloquent-ն օգնում են արագացնել հավելվածների և պլատֆորմի զարգացումը` ապահովելով խնդիրների մեծ մասի համարժեք լուծում: Պահանջները լուծվում են ավելի արագ մշակմամբ, ինչպես նաև լավ կազմակերպված, բազմակի օգտագործման, պահպանվող և մասշտաբային կոդով: 

Ինչպես է աշխատում պերճախոսը

Մշակողները կարող են աշխատել Eloquent մի քանի տվյալների բազաներով՝ արդյունավետորեն օգտագործելով ActiveMethod իրականացումը: Դա ճարտարապետական ​​օրինաչափություն է, որտեղ Model-View-Controller (MVC) կառուցվածքում ստեղծված մոդելը համապատասխանում է տվյալների բազայի աղյուսակին: Առավելությունն այն է, որ մոդելները կատարում են տվյալների բազայի ընդհանուր գործողություններ՝ առանց երկար SQL հարցումների կոդավորման: Կաղապարները թույլ են տալիս հարցումներ կատարել աղյուսակներում և նոր գրառումներ տեղադրել աղյուսակներում: Պարզեցված է տարբեր համակարգերում աշխատող բազմաթիվ տվյալների բազաների համաժամացման գործընթացը: Ձեզ հարկավոր չէ գրել SQL հարցումներ: Ձեզ մնում է միայն defiԱվարտեք տվյալների բազայի աղյուսակները և դրանց միջև եղած հարաբերությունները, և Eloquent-ը կկատարի մնացած աշխատանքը:

Laravel պատրաստում

Eloquent ORM-ի օգտակարությունը գնահատելը և էկոհամակարգը հասկանալը պարտադիր է: Սկսելու քայլեր.

  1. Տեղադրեք Laravel-ը getcomposer.org-ից, դա անելու համար հետևեք այստեղի հրահանգներին
  2. Ստեղծել migration օգտագործելով վահանակը Artisan
  3. Ստեղծեք կաղապարներ eloquent
  4. վազել ես seed տվյալների բազայի

Artisan Console Laravel-ում ներառված հրամանի տողի ինտերֆեյսի անվանումն է: Տրամադրում է մի շարք օգտակար հրամաններ՝ օգտագործելու ձեր հավելվածը մշակելիս: Այն առաջնորդվում է հզոր բաղադրիչով Symfony Console.

Բոլոր հասանելի Artisan հրամանների ցանկը տեսնելու համար կարող եք օգտագործել ցուցակի հրամանը.

php artisan list

Բոլոր հրամանները գալիս են դրա փաստարկների և տարբերակների հակիրճ նկարագրությամբ: Սա ցուցադրվում է «օգնության» էկրանին: Օգնության էկրանը ցուցադրելու համար պարզապես հրամանի անունից առաջ անցեք «օգնություն», ինչպես ցույց է տրված.

php artisan help migrate

Migration

Միգրացիան տվյալների բազայի կառավարման գործընթաց է՝ փոխարենը գրելով PHP SQL. Տրամադրում է տարբերակի վերահսկում տվյալների բազան ավելացնելու միջոց: 

Միգրացիա ստեղծելու համար պարզապես գործարկեք հետևյալ հրամանը.

php artisan make:migration create_student_records

Սա ստեղծում է միգրացիոն ֆայլը: Ձեր տեքստային խմբագրիչում բացեք հենց նոր ստեղծված ֆայլը թղթապանակում 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');
    }
}

Կոդը նույն անունով դաս է.create student records', և ունի երկու մեթոդ՝ վեր և վար: Up մեթոդը պետք է փոփոխություններ կատարի տվյալների բազայում. այնպես որ, երբ դուք տեղափոխում եք ձեր տվյալների բազան, վերև մեթոդի ցանկացած կոդ կկատարվի: Մյուս կողմից, ներքև մեթոդը պետք է հետ դարձնի տվյալների բազայի փոփոխությունները. այնպես որ, երբ դուք վազում եք rollback - ից migration, ներքեւ մեթոդը պետք է չեղարկի այն, ինչ արեց վերև մեթոդը: Մեթոդի ներսում up կա սխեմաների ստեղծող, որն օգտագործվում է աղյուսակները ստեղծելու և շահարկելու համար: Ի՞նչ կլինի, եթե չեղարկեք ձեր միգրացիաներից մի քանիսը: Ձեզ մնում է միայն իրականացնել հետևյալ հրամանը.

php artisan migrate:rollback

Եվ նա կհավաքի վերջինը migration որն իրականացվել է։ Նաև կարող եք ամբողջությամբ վերականգնել տվյալների բազան՝ գործարկելով.

php artisan migrate:reset

Սա կչեղարկի ձեր բոլոր միգրացիաները:

Defi-ի մոդելների միացում Eloquent

Տվյալների բազայի միգրացիայի ավարտից հետո հաջորդ գործընթացը հետևյալն է seedingEloquent մտնում է խաղի մեջ, քանի որ seeding գրառումներ է տեղադրում մեր տվյալների բազայում: Այսպիսով, դուք պետք է ստեղծեք ձևանմուշները՝ նախքան տվյալների բազան համալրելը: Տվյալների բազայի յուրաքանչյուր աղյուսակ ունի համապատասխան մոդել, որն օգտագործվում է այդ աղյուսակի հետ փոխազդելու համար: Կաղապարները թույլ են տալիս հարցումներ կատարել ձեր աղյուսակների տվյալների վրա, ինչպես նաև տեղադրել նոր գրառումներ աղյուսակում: Մոդելը օրինակելի դարձնելու ամենահեշտ ձևը հետևյալ հրամանն օգտագործելն է.

php artisan make:model Student
Կաղապարի օրինակը ներկայացված է ստորև Student, որը կարող է օգտագործվել մեր ուսանողի տվյալների բազայի աղյուսակից տեղեկատվությունը առբերելու և պահելու համար.
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Երբ դուք ստեղծում եք մոդել և միևնույն ժամանակ ցանկանում եք ստեղծել տվյալների բազայի միգրացիա, կարող եք օգտագործել տարբերակը –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Սերմնացաններ

Ընդհանուր սերմանիչները դասերի հատուկ հավաքածու են, որոնք թույլ են տալիս մեզ նորից ու նորից համալրել մեր տվյալների բազան ճիշտ նույն տվյալներով: Մենք իրականացնում ենք հետևյալ հրամանը.

php artisan make:seeder StudentsRecordSeeder

Տեքստի խմբագրում, սերմերի թղթապանակի տակ, բացեք նոր ստեղծված ֆայլը ֆայլի անունով. StudentsRecordSeeder.php. Ինչպես տեսնում եք, սա պարզապես շատ պարզ դաս է մեկ մեթոդով, որը կոչվում է run()

<?php
use IlluminateDatabaseSeeder;

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

    public function run()
    {
        //
    }
}

Կոդը պարզապես փաթաթված է վահանակի հրամանների դասի շուրջ, որը հատուկ կառուցված է առաջադրանքը կատարելու համար seeding. Խմբագրել կոդը, ապա պահպանել այն:

Նորարարության տեղեկագիր
Բաց մի թողեք նորարարության մասին ամենակարևոր նորությունները: Գրանցվեք դրանք էլփոստով ստանալու համար:
public function run()
{
    echo 'Seeding!';
}

Եվ գնալով տերմինալ.

php artisan db:seed --class=StudentsRecordSeeder

Այժմ դուք կարող եք լրացնել աղյուսակը որոշ գրառումներով և գործարկել.

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

Այստեղ դուք կարող եք շարունակել ջնջել, ավելացնել, փոփոխել գրառումները DB-ում, այնուհետև վերականգնել դրանք պարզ հրամանով:

CRUD Laravel Eloquent-ի հետ

CRUD գործողությունները Laravel Eloquent օբյեկտ-առաբերական քարտեզագրիչով (ORM) հեշտացնում են Laravel մշակողների համար աշխատել բազմաթիվ տվյալների բազաների հետ: Այն իրականացնում է ստեղծելու, կարդալու, թարմացնելու և ջնջելու (CRUD) գործողություններ և օբյեկտների մոդելները քարտեզագրում տվյալների բազայի աղյուսակներում: Կառավարում է տվյալների բազայի բոլոր փոխազդեցությունները, որոնք անհրաժեշտ են CRUD գործառնությունների համար:

Գրառումների ստեղծում

Դուք կարող եք օգտագործել ::create մեթոդը տվյալների բազայում նոր գրառում տեղադրելու համար:

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

Ի լրումն վերը նշված ստեղծման պարզ մեթոդի, դուք կարող եք նաև ստեղծել նոր օբյեկտ և տալ նրան տարբեր ատրիբուտներ: Այնուհետև կարող եք զանգահարել save() ֆունկցիան և գործարկել կոդը: Մեթոդներ, ինչպիսիք են firstOrCreate() կամ firstOrNew() գրառումներ ստեղծելու այլ տարբերակներ են։ Դրանք թույլ կտան ձեզ գտնել որոշակի հատկանիշներով ուսանող. եթե այդ ուսանողը չգտնվի, դուք կստեղծեք այն տվյալների բազայում կամ կստեղծեք նոր օրինակ:

Գրառումներ կարդալը

Օգտագործելով Eloquent ORM-ը, դուք կարող եք գրառումներ գտնել ձեր տվյալների բազայում: Հարցումները պարզապես կառուցված են և առաջարկում են հարթ հոսք: Հայտարարություններ ստեղծելու համար՝where, դուք կօգտագործեք մեթոդները get() Եվ first(). Մեթոդը first() կվերադարձնի միայն մեկ գրառում, մինչդեռ մեթոդը get()-ը կվերադարձնի ձայնագրությունների օղակաձև զանգված: Նաև մեթոդը find() կարող է օգտագործվել հիմնական բանալիների զանգվածի հետ, որը կվերադարձնի համապատասխան գրառումների հավաքածու: Ահա մի քանի օրինակներ.

$student = Students::all();

Այս կոդը ստանում է բոլոր ուսանողներին: Մինչդեռ հետևյալ կոդը գտնում է կոնկրետ ուսանողի ID-ով.

$student = Ուսանողներ::find(1);

Նաև, ինչպես ցույց է տրված ստորև, կոդը նկարագրում է ուսանողի որոնումը հատուկ հատկանիշի հիման վրա:

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

Get() մեթոդի համար այս կոդը ցույց է տալիս, թե ինչպես գտնել 5-ից բարձր մակարդակ ունեցող ուսանող:

$rankStudents = Student::where('student_rank', '>', 5)->get();
Գրառման թարմացում

Eloquent-ի միջոցով գրառումների թարմացումը նույնքան պարզ է: Գրառումը թարմացնելու համար պարզապես գտեք այն գրառումը, որը ցանկանում եք թարմացնել, խմբագրեք ատրիբուտները և պահպանեք: Օրինակ՝ Ջոն Դոյի աշակերտի գնահատականը 5-ի փոխելու համար նախ գտեք աշակերտին, ապա գործարկեք պահպանման մեթոդը։

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

Պահպանման մեթոդը կարող է օգտագործվել նաև տվյալների բազայում արդեն գոյություն ունեցող մոդելները թարմացնելու համար:

Ջնջել գրառումները

Eloquent-ը պարծենում է գրառումների թարմացման իր հեշտ գործընթացով, բայց այն ունի նույն պատմությունը ջնջման հետ կապված: Կա երկու տարբերակ՝ դուրս հանել գրառումները և կատարել ջնջման մեթոդը, կամ պարզապես օգտագործել ոչնչացման մեթոդը: Գրառումը գտնելու և ջնջելու համար պարզապես գործարկեք հետևյալ հրամանները.

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

Գրառումը և բազմաթիվ գրառումները ջնջելու համար գործարկվում են հրամանները.

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

Նշենք, որ ոչնչացման պարամետրերը միայն առաջնային բանալիներ են, ի տարբերություն ջնջման մեթոդի, որը կարող է ընդունել տվյալների բազայի ցանկացած սյունակ:

10-րդ մակարդակից բարձր բոլոր ուսանողներին գտնելու և ջնջելու համար:

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Նորարարության տեղեկագիր
Բաց մի թողեք նորարարության մասին ամենակարևոր նորությունները: Գրանցվեք դրանք էլփոստով ստանալու համար:

Վերջին հոդվածները

Veeam-ն ունի ամենաընդգրկուն աջակցություն փրկագինին՝ պաշտպանությունից մինչև պատասխան և վերականգնում

Veeam-ի Coveware-ը կշարունակի տրամադրել կիբեր շորթման միջադեպերի արձագանքման ծառայություններ: Coveware-ը կառաջարկի դատաբժշկական և վերականգնման հնարավորություններ…

23 Ապրիլ 2024

Կանաչ և թվային հեղափոխություն. Ինչպես է կանխատեսելի սպասարկումը փոխակերպում նավթի և գազի արդյունաբերությունը

Կանխատեսելի սպասարկումը հեղափոխություն է անում նավթի և գազի ոլորտում՝ կայանի կառավարման նորարարական և ակտիվ մոտեցմամբ:…

22 Ապրիլ 2024

Մեծ Բրիտանիայի հակամենաշնորհային կարգավորիչը բարձրացնում է BigTech-ի ահազանգը GenAI-ի վերաբերյալ

Մեծ Բրիտանիայի CMA-ն նախազգուշացում է տարածել արհեստական ​​ինտելեկտի շուկայում Big Tech-ի վարքագծի վերաբերյալ: Այնտեղ…

18 Ապրիլ 2024

Casa Green. էներգետիկ հեղափոխություն կայուն ապագայի համար Իտալիայում

Շենքերի էներգաարդյունավետության բարձրացման նպատակով Եվրոպական միության կողմից ձևակերպված «Քեյս Գրին» հրամանագիրը իր օրենսդրական գործընթացն ավարտել է…

18 Ապրիլ 2024

Կարդացեք նորարարությունը ձեր լեզվով

Նորարարության տեղեկագիր
Բաց մի թողեք նորարարության մասին ամենակարևոր նորությունները: Գրանցվեք դրանք էլփոստով ստանալու համար:

Հետեւեք մեզ