Maqolalar

Laravel Eloquent nima, undan qanday foydalanish, misollar bilan o'quv qo'llanma

Laravel PHP ramkasi Eloquent Object Relational Mapper (ORM) ni o'z ichiga oladi, bu ma'lumotlar bazasi bilan aloqa qilishning juda oson usulini ta'minlaydi. 

Laravel va Eloquent ilovalar va platformalar ishlab chiqishni tezlashtirishga yordam beradi, ko'pchilik muammolarga adekvat yechim beradi. Talablar tezroq ishlab chiqish, shuningdek, yaxshi tashkil etilgan, qayta ishlatilishi mumkin bo'lgan, parvarish qilinadigan va kengaytiriladigan kod bilan hal qilinadi. 

Eloquent qanday ishlaydi

Ishlab chiquvchilar ishlashlari mumkin Eloquent ActiveMethod ilovasidan samarali foydalangan holda bir nechta ma'lumotlar bazalari bilan. Bu Model-View-Controller (MVC) strukturasida yaratilgan model ma'lumotlar bazasidagi jadvalga mos keladigan arxitektura naqshidir. Afzalligi shundaki, modellar umumiy ma'lumotlar bazasi operatsiyalarini uzoq SQL so'rovlarini kodlamasdan bajaradi. Shablonlar jadvallardagi ma'lumotlarni so'rash va jadvallarga yangi yozuvlarni kiritish imkonini beradi. Turli xil tizimlarda ishlaydigan bir nechta ma'lumotlar bazalarini sinxronlashtirish jarayoni soddalashtirilgan. SQL so'rovlarini yozishingiz shart emas. Siz qilishingiz kerak bo'lgan yagona narsa defiMa'lumotlar bazasi jadvallarini va ular orasidagi munosabatlarni tugating va Eloquent qolgan ishni bajaradi.

Laravel tayyorlash

Eloquent ORM foydaliligini qadrlash va ekotizimni tushunish shart. Boshlash uchun qadamlar:

  1. Laravelni getcomposer.org dan o'rnating, buning uchun bu yerdagi ko'rsatmalarga amal qiling
  2. Yaratmoq migration konsoldan foydalanish Artisan
  3. Shablonlar yaratish eloquent
  4. yugurish i seed ma'lumotlar bazasidan

Artisan Console Laravel tarkibiga kiritilgan buyruq qatori interfeysining nomi. Ilovangizni ishlab chiqishda foydalanish uchun foydali buyruqlar to'plamini taqdim etadi. U kuchli komponent tomonidan boshqariladi Symfony Console.

Barcha mavjud Artisan buyruqlar ro'yxatini ko'rish uchun ro'yxat buyrug'idan foydalanishingiz mumkin:

php artisan list

Barcha buyruqlar uning argumentlari va variantlarining qisqacha tavsifi bilan birga keladi. Bu "yordam" ekranida ko'rsatiladi. Yordam ekranini ko‘rsatish uchun buyruq nomidan oldin ko‘rsatilganidek “yordam” so‘zini qo‘yish kifoya:

php artisan help migrate

Migration

Migratsiya - bu o'rniga PHP yozish orqali ma'lumotlar bazasini boshqarish jarayoni SQL. Ma'lumotlar bazasiga versiya boshqaruvini qo'shish usulini taqdim etadi. 

Migratsiya yaratish uchun quyidagi buyruqni bajaring:

php artisan make:migration create_student_records

Bu migratsiya faylini yaratadi. Matn muharririda papkada yaratgan faylni oching 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 bir xil nomdagi sinfdir 'create student records', va ikkita usul mavjud: yuqoriga va pastga. Up usuli ma'lumotlar bazasiga o'zgartirishlar kiritishi kerak; shuning uchun siz ma'lumotlar bazasini har safar ko'chirsangiz, yuqoriga ko'tarish usulidagi har qanday kod bajariladi. Boshqa tomondan, pastga tushirish usuli ma'lumotlar bazasi o'zgarishlarini orqaga qaytarishi kerak; shuning uchun har doim ishga tushirganingizda rollback della migration, pastga usuli yuqoriga usuli qilgan narsani bekor qilishi kerak. Usul ichida up jadvallarni yaratish va manipulyatsiya qilish uchun ishlatiladigan sxema yaratuvchisi mavjud. Agar ba'zi migratsiyalaringizni bekor qilsangiz nima bo'ladi? Buning uchun quyidagi buyruqni bajarish kifoya:

php artisan migrate:rollback

Va u oxirgisini yig'adi migration amalga oshirilgan. Bundan tashqari, ma'lumotlar bazasini to'liq tiklashingiz mumkin:

php artisan migrate:reset

Bu barcha migratsiyalaringizni bekor qiladi.

Defining modellari Eloquent

Ma'lumotlar bazasini ko'chirish tugallangandan so'ng, keyingi jarayon seedingEloquent dan boshlab kuchga kiradi seeding ma'lumotlar bazasiga yozuvlarni kiritmoqda. Shunday qilib, ma'lumotlar bazasini to'ldirishdan oldin shablonlarni yaratishingiz kerak bo'ladi. Har bir ma'lumotlar bazasi jadvalida ushbu jadval bilan o'zaro ishlash uchun foydalaniladigan tegishli model mavjud. Shablonlar sizning jadvallaringizdagi ma'lumotlarni so'rash, shuningdek, jadvalga yangi yozuvlar kiritish imkonini beradi. Modelni yaratishning eng oson yo'li quyidagi buyruqni ishlatishdir:

php artisan make:model Student
Shablonning namunasi quyida ko'rsatilgan Student, bu bizning talaba ma'lumotlar bazasi jadvalidan ma'lumotlarni olish va saqlash uchun ishlatilishi mumkin:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Modelni yaratganingizda va shu bilan birga ma'lumotlar bazasi migratsiyasini yaratmoqchi bo'lsangiz, variantdan foydalanishingiz mumkin –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Urug' sepuvchilar

Umumiy ekinlar maʼlumotlar bazasini aynan bir xil maʼlumotlar bilan qayta-qayta toʻldirishga imkon beruvchi maxsus sinflar toʻplamidir. Biz quyidagi buyruqni bajaramiz:

php artisan make:seeder StudentsRecordSeeder

Matn muharririda, urug'lar papkasi ostida, fayl nomi bilan yangi yaratilgan faylni oching: StudentsRecordSeeder.php. Ko'rib turganingizdek, bu juda oddiy sinf, deb nomlangan bitta usul bilan run().

<?php
use IlluminateDatabaseSeeder;

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

    public function run()
    {
        //
    }
}

Kod shunchaki vazifani bajarishda yordam berish uchun yaratilgan konsol buyruqlar sinfi atrofidagi o'ramdir seeding. Kodni tahrirlang va keyin saqlang.

Innovatsion axborot byulleteni
Innovatsiyalar haqidagi eng muhim yangiliklarni o'tkazib yubormang. Ularni elektron pochta orqali olish uchun ro'yxatdan o'ting.
public function run()
{
    echo 'Seeding!';
}

Va terminalga borish:

php artisan db:seed --class=StudentsRecordSeeder

Endi siz jadvalni ba'zi yozuvlar bilan to'ldirishingiz va ishga tushirishingiz mumkin:

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

Bu yerda siz JBdagi yozuvlarni o'chirish, qo'shish, o'zgartirishni davom ettirishingiz mumkin, keyin ularni oddiy buyruq bilan tiklashingiz mumkin.

Laravel Eloquent bilan CRUD

Laravel Eloquent ob'ektga aloqador xaritalash (ORM) bilan CRUD operatsiyalari Laravel ishlab chiquvchilari uchun bir nechta ma'lumotlar bazalari bilan ishlashni osonlashtiradi. U yaratish, o'qish, yangilash va o'chirish (CRUD) operatsiyalarini bajaradi va ob'ekt modellarini ma'lumotlar bazasi jadvallari bilan taqqoslaydi. CRUD operatsiyalari uchun zarur bo'lgan barcha ma'lumotlar bazasi shovqinlarini boshqaradi.

Yozuvlarni yaratish

Ma'lumotlar bazasiga yangi yozuv kiritish uchun ::create usulidan foydalanishingiz mumkin.

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

Yuqorida ko'rsatilgan oddiy yaratish usuliga qo'shimcha ravishda siz yangi ob'ekt yaratishingiz va unga turli xil atributlar berishingiz mumkin. Keyin save() funksiyasini chaqirib, kodni ishga tushirishingiz mumkin. kabi usullar firstOrCreate() yoki firstOrNew() yozuvlarni yaratishning boshqa variantlari. Bular sizga ma'lum atributlarga ega bo'lgan talabani topish imkonini beradi; agar talaba topilmasa, uni ma'lumotlar bazasida yaratasiz yoki yangi namunani yaratasiz.

Yozuvlarni o'qish

Eloquent ORM dan foydalanib, ma'lumotlar bazasida yozuvlarni topishingiz mumkin. So'rovlar oddiygina tuzilgan va silliq oqimni taklif qiladi. Bayonotlarni yaratish uchun::where, usullardan foydalanasiz get() Va first(). Usul first() usul esa faqat bitta yozuvni qaytaradi get() loopli yozuvlar qatorini qaytaradi. Bundan tashqari, usul find() mos yozuvlar to'plamini qaytaradigan asosiy kalitlar majmuasi bilan ishlatilishi mumkin. Mana bir nechta misollar:

$student = Students::all();

Ushbu kod barcha talabalarni oladi. Quyidagi kod ma'lum bir talabani ID bo'yicha topadi:

$talaba = Talabalar::find(1);

Bundan tashqari, quyida ko'rsatilganidek, kod ma'lum bir atribut asosida talabani qidirishni tasvirlaydi.

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

Get() usuli uchun bu kod 5 dan yuqori bo'lgan talabani qanday topish mumkinligini ko'rsatadi.

$rankStudents = Student::where('student_rank', '>', 5)->get();
Yozuvni yangilash

Eloquent yordamida yozuvlarni yangilash ham xuddi shunday oson. Yozuvni yangilash uchun yangilanmoqchi bo'lgan yozuvni toping, atributlarni tahrirlang va saqlang. Masalan, Jon Doe shogirdining baho darajasini 5 ga o'zgartirish uchun avval talabani toping va keyin saqlash usulini bajaring.

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

Saqlash usuli ma'lumotlar bazasida allaqachon mavjud bo'lgan modellarni yangilash uchun ham ishlatilishi mumkin.

Yozuvlarni o'chirish

Eloquent o'zining oson yozuvlarni yangilash jarayoni bilan maqtanadi, lekin u o'chirish bilan bir xil voqeaga ega. Ikkita variant mavjud: yozuvlarni chiqarib oling va o'chirish usulini bajaring yoki oddiygina yo'q qilish usulidan foydalaning. Yozuvni topish va o'chirish uchun quyidagi buyruqlarni bajaring:

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

Yozuvni va bir nechta yozuvlarni o'chirish uchun buyruqlar bajariladi:

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

Yo'q qilish parametrlari har qanday ma'lumotlar bazasi ustunini qabul qila oladigan o'chirish usulidan farqli o'laroq, faqat asosiy kalitlar ekanligini unutmang.

10-darajadan yuqori barcha talabalarni topish va o'chirish.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Innovatsion axborot byulleteni
Innovatsiyalar haqidagi eng muhim yangiliklarni o'tkazib yubormang. Ularni elektron pochta orqali olish uchun ro'yxatdan o'ting.

So'nggi maqolalar

Catania poliklinikasida Apple tomoshabin bilan kengaytirilgan haqiqatga innovatsion aralashuv

Kataniya poliklinikasida Apple Vision Pro tijorat ko‘rish vositasi yordamida oftalmoplastika operatsiyasi o‘tkazildi...

3 may 2024

Bolalar uchun sahifalarni bo'yashning afzalliklari - barcha yoshdagilar uchun sehrli dunyo

Rang berish orqali nozik vosita ko'nikmalarini rivojlantirish bolalarni yozish kabi murakkabroq ko'nikmalarga tayyorlaydi. Rang berish uchun…

2 may 2024

Kelajak bu yerda: Yuk tashish sanoati global iqtisodiyotni qanday inqilob qilmoqda

Harbiy dengiz sektori 150 milliardlik bozorga yo'l olgan haqiqiy global iqtisodiy kuchdir...

1 may 2024

Noshirlar va OpenAI sun'iy intellekt tomonidan qayta ishlangan ma'lumotlar oqimini tartibga solish bo'yicha shartnomalar imzolaydilar.

O'tgan dushanba kuni Financial Times OpenAI bilan shartnoma imzolaganini e'lon qildi. FT o'zining jahon darajasidagi jurnalistikasini litsenziyalaydi...

30 Aprel 2024