Məqalələr

Laravel Eloquent nədir, onu necə istifadə etmək olar, nümunələrlə təlimat

Laravel PHP çərçivəsinə verilənlər bazası ilə çox asan əlaqə qurmağı təmin edən Eloquent Object Relational Mapper (ORM) daxildir. 

Laravel və Eloquent proqramların və platformaların işlənməsini sürətləndirməyə kömək edir, əksər problemlərə adekvat həll yolu təqdim edir. Tələblər daha sürətli inkişaf, eləcə də yaxşı təşkil edilmiş, təkrar istifadə edilə bilən, saxlanıla bilən və genişlənə bilən kodla həll edilir. 

Eloquent necə işləyir

Tərtibatçılar işləyə bilər Eloquent ActiveMethod tətbiqindən səmərəli istifadə edərək çoxsaylı verilənlər bazası ilə. Model-View-Controller (MVC) strukturunda yaradılmış modelin verilənlər bazasındakı cədvələ uyğun olduğu memarlıq nümunəsidir. Fayda ondan ibarətdir ki, şablonlar uzun SQL sorğularını kodlaşdırmadan ümumi verilənlər bazası əməliyyatlarını yerinə yetirir. Şablonlar cədvəllərdəki məlumatları sorğulamağa və cədvəllərə yeni qeydlər daxil etməyə imkan verir. Müxtəlif sistemlərdə işləyən çoxsaylı verilənlər bazalarının sinxronizasiyası prosesi sadələşdirilmişdir. SQL sorğuları yazmağa ehtiyac yoxdur. Bütün etməlisən defiVerilənlər bazası cədvəllərini və onlar arasındakı əlaqələri tamamlayın və Eloquent qalan işləri görəcək.

Laravel hazırlığı

Eloquent ORM-nin faydasını qiymətləndirmək və ekosistemi başa düşmək mütləqdir. Başlamaq üçün addımlar:

  1. Laravel-i getcomposer.org saytından quraşdırın, bunun üçün buradakı təlimatlara əməl edin
  2. Yaradın migration konsoldan istifadə etməklə Artisan
  3. Şablonlar yaradın eloquent
  4. qaçmaq i seed verilənlər bazasından

Artisan Console Laravel-ə daxil olan komanda xətti interfeysinin adıdır. Tətbiqinizi inkişaf etdirərkən istifadə etmək üçün faydalı əmrlər toplusunu təmin edir. Güclü komponent tərəfindən idarə olunur Symfony Console.

Bütün mövcud Artisan əmrlərinin siyahısını görmək üçün siyahı əmrindən istifadə edə bilərsiniz:

php artisan list

Bütün əmrlər onun arqumentlərinin və variantlarının qısa təsviri ilə gəlir. Bu, "kömək" ekranında göstərilir. Yardım ekranını göstərmək üçün əmr adından əvvəl göstərildiyi kimi “kömək” yazmağınız kifayətdir:

php artisan help migrate

Migration

Miqrasiya əvəzinə PHP yazmaqla verilənlər bazası idarəetmə prosesidir SQL. Versiya nəzarətini verilənlər bazasına əlavə etmək üçün bir yol təqdim edir. 

Miqrasiya yaratmaq üçün aşağıdakı əmri yerinə yetirmək kifayətdir:

php artisan make:migration create_student_records

Bu, miqrasiya faylını yaradır. Mətn redaktorunuzda qovluqda yeni yaratdığınız faylı açın 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');
    }
}

Kod eyni adlı sinifdir 'create student records' və iki üsulu var: yuxarı və aşağı. Up metodu verilənlər bazasında dəyişikliklər etməlidir; belə ki, siz verilənlər bazanızı hər dəfə köçürdükdə, yuxarı metodunda istənilən kod icra olunacaq. Digər tərəfdən, aşağı metodu verilənlər bazası dəyişikliklərini geri qaytarmalıdır; belə ki, siz nə zaman run rollback of migration, aşağı metodu yuxarı metodunun etdiklərini geri almalıdır. Metod daxilində up cədvəlləri yaratmaq və manipulyasiya etmək üçün istifadə edilən sxem qurucusu var. Bəzi miqrasiyalarınızı ləğv etsəniz nə olar? Etməli olduğunuz şey aşağıdakı əmri yerinə yetirməkdir:

php artisan migrate:rollback

Və sonuncunu yığacaq migration həyata keçirilmişdir. Həmçinin, işlətməklə verilənlər bazasını tam bərpa edə bilərsiniz:

php artisan migrate:reset

Bu, bütün miqrasiyalarınızı ləğv edəcək.

Defimodelləri Eloquent

Verilənlər bazası miqrasiyası tamamlandıqdan sonra növbəti prosesdir seedingEloquent ildən fəaliyyətə başlayır seeding məlumat bazamıza qeydlər daxil edir. Beləliklə, verilənlər bazasını doldurmazdan əvvəl şablonları yaratmalısınız. Hər bir verilənlər bazası cədvəlində həmin cədvəllə qarşılıqlı əlaqə yaratmaq üçün istifadə olunan müvafiq model var. Şablonlar sizə cədvəllərinizdəki məlumatları sorğulamağa, həmçinin cədvələ yeni qeydlər daxil etməyə imkan verir. Modeli yaratmağın ən asan yolu aşağıdakı əmrdən istifadə etməkdir:

php artisan make:model Student
Şablon nümunəsi aşağıda göstərilmişdir Student, tələbəmizin verilənlər bazası cədvəlindən məlumat almaq və saxlamaq üçün istifadə edilə bilər:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Bir model yaratdığınız zaman və eyni zamanda verilənlər bazası miqrasiyası yaratmaq istədiyiniz zaman seçimdən istifadə edə bilərsiniz –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Toxumçular

Ümumi toxum səpənlər verilənlər bazamızı təkrar-təkrar eyni məlumatlarla doldurmağa imkan verən xüsusi siniflər dəstidir. Aşağıdakı əmri yerinə yetiririk:

php artisan make:seeder StudentsRecordSeeder

Mətn redaktorunda, toxum qovluğunun altında, fayl adı ilə yeni yaradılmış faylı açın: StudentsRecordSeeder.php. Gördüyünüz kimi, bu, adlanan bir metodu olan çox sadə bir sinifdir run🇧🇷

<?php
use IlluminateDatabaseSeeder;

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

    public function run()
    {
        //
    }
}

Kod sadəcə tapşırıqda kömək etmək üçün xüsusi olaraq qurulmuş konsol komanda sinfi ətrafında sarğıdır seeding. Kodu redaktə edin və sonra onu yadda saxlayın.

İnnovasiya bülleteni
Yeniliklərlə bağlı ən vacib xəbərləri qaçırmayın. Onları e-poçtla almaq üçün qeydiyyatdan keçin.
public function run()
{
    echo 'Seeding!';
}

Və terminala gedirik:

php artisan db:seed --class=StudentsRecordSeeder

İndi cədvəli bəzi qeydlərlə doldurub işlədə bilərsiniz:

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

Burada siz DB-dəki qeydləri silmək, əlavə etmək, dəyişdirmək, sonra onları sadə bir əmrlə bərpa etmək üçün davam edə bilərsiniz.

Laravel Eloquent ilə CRUD

Laravel Eloquent obyekt-relational mapper (ORM) ilə CRUD əməliyyatları Laravel tərtibatçılarının çoxsaylı verilənlər bazası ilə işləməsini asanlaşdırır. O, yaratmaq, oxumaq, yeniləmək və silmək (CRUD) əməliyyatlarını yerinə yetirir və obyekt modellərini verilənlər bazası cədvəlləri ilə əlaqələndirir. CRUD əməliyyatları üçün tələb olunan bütün verilənlər bazası qarşılıqlı əlaqəsini idarə edir.

Qeydlərin yaradılması

Verilənlər bazasına yeni qeyd daxil etmək üçün ::create metodundan istifadə edə bilərsiniz.

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

Yuxarıda göstərilən sadə yaratma üsuluna əlavə olaraq, yeni bir obyekt yarada və ona müxtəlif atributlar verə bilərsiniz. Sonra save() funksiyasına zəng edib kodu işlədə bilərsiniz. kimi üsullar firstOrCreate() və ya firstOrNew() qeydlər yaratmaq üçün digər variantlardır. Bunlar sizə müəyyən xüsusiyyətlərə malik tələbə tapmağa imkan verəcək; əgər həmin tələbə tapılmazsa, siz onu ya verilənlər bazasında yaradacaqsınız, ya da yeni nümunəni yaradacaqsınız.

Qeydlərin oxunması

Eloquent ORM-dən istifadə edərək verilənlər bazanızda qeydləri tapa bilərsiniz. Sorğular sadəcə olaraq qurulur və hamar bir axın təklif edir. Bəyanatlar yaratmaq üçün::where, üsullardan istifadə edəcəksiniz get() Və first(). Metod first() metodu isə yalnız bir qeydi qaytaracaq get() dönə bilən qeydlər sırasını qaytaracaq. Həm də üsul find() uyğun qeydlər toplusunu qaytaracaq bir sıra əsas açarlarla istifadə edilə bilər. Budur bəzi nümunələr:

$student = Students::all();

Bu kod bütün tələbələri alır. Aşağıdakı kod şəxsiyyət vəsiqəsi ilə müəyyən bir tələbə taparkən:

$tələbə = Tələbələr::find(1);

Həmçinin, aşağıda göstərildiyi kimi, kod konkret atribut əsasında tələbə axtarışını təsvir edir.

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

Get() metodu üçün bu kod səviyyəsi 5-dən yuxarı olan tələbənin necə tapılacağını göstərir.

$rankStudents = Student::where('student_rank', '>', 5)->get();
Qeyd yeniləməsi

Eloquent istifadə edərək qeydləri yeniləmək eyni dərəcədə asandır. Qeydi yeniləmək üçün sadəcə yeniləmək istədiyiniz qeydi tapın, atributları redaktə edin və yadda saxlayın. Məsələn, John Doe-nin şagirdinin qiymət səviyyəsini 5-ə dəyişdirmək üçün əvvəlcə tələbəni tapın və sonra saxlama metodunu yerinə yetirin.

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

Saxlama üsulu verilənlər bazasında artıq mövcud olan modelləri yeniləmək üçün də istifadə edilə bilər.

Qeydləri silin

Eloquent öz asan rekord yeniləmə prosesi ilə öyünür, lakin silinmə ilə eyni hekayəyə malikdir. İki seçim var: qeydləri çıxarın və silmə metodunu yerinə yetirin və ya sadəcə məhv etmə metodundan istifadə edin. Qeydi tapmaq və silmək üçün aşağıdakı əmrləri yerinə yetirmək kifayətdir:

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

Bir qeydi və çoxlu qeydləri silmək üçün əmrlər yerinə yetirilir:

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

Nəzərə alın ki, məhvetmə parametrləri hər hansı verilənlər bazası sütununu qəbul edə bilən silmə metodundan fərqli olaraq yalnız əsas açarlardır.

10-cu səviyyədən yuxarı olan bütün tələbələri tapmaq və silmək.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
İnnovasiya bülleteni
Yeniliklərlə bağlı ən vacib xəbərləri qaçırmayın. Onları e-poçtla almaq üçün qeydiyyatdan keçin.

Articoli recenti

Veeam müdafiədən tutmuş cavab və bərpaya qədər ransomware üçün ən əhatəli dəstəyi təqdim edir

Coveware by Veeam kiber qəsb hallarına cavab xidmətləri göstərməyə davam edəcək. Coveware məhkəmə və remediasiya imkanları təklif edəcək...

23 Aprel 2024

Yaşıl və Rəqəmsal İnqilab: Proqnozlaşdırılan Baxım Neft və Qaz Sənayesini necə çevirir?

Proqnozlaşdırılan texniki xidmət zavodun idarə edilməsinə innovativ və proaktiv yanaşma ilə neft və qaz sektorunda inqilab edir.…

22 Aprel 2024

Böyük Britaniyanın antiinhisar tənzimləyicisi GenAI üzərində BigTech həyəcanını qaldırır

Böyük Britaniyanın CMA süni intellekt bazarında Big Tech-in davranışı ilə bağlı xəbərdarlıq edib. Orada…

18 Aprel 2024

Casa Green: İtaliyada davamlı gələcək üçün enerji inqilabı

Avropa İttifaqı tərəfindən binaların enerji səmərəliliyini artırmaq üçün tərtib edilən "Yaşıl Evlər" Fərmanı qanunvericilik prosesini yekunlaşdırdı ...

18 Aprel 2024