بضائع

ما هو Laravel Eloquent ، كيفية استخدامه ، دروس مع أمثلة

يتضمن إطار عمل Laravel PHP مخطط Eloquent Object Relational Mapper (ORM) ، والذي يوفر طريقة سهلة للغاية للتواصل مع قاعدة البيانات. 

يساعد Laravel و Eloquent في تسريع تطوير التطبيقات والمنصات ، مما يوفر حلًا مناسبًا لمعظم المشكلات. تتم معالجة المتطلبات من خلال التطوير الأسرع ، بالإضافة إلى التعليمات البرمجية جيدة التنظيم والقابلة لإعادة الاستخدام والصيانة والقابلة للتطوير. 

كيف يعمل 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 المتاحة ، يمكنك استخدام أمر list:

php artisan list

تأتي جميع الأوامر مع وصف موجز لحججها وخياراتها. يظهر هذا في شاشة "تعليمات". لعرض شاشة تعليمات ، ما عليك سوى كتابة "help" قبل اسم الأمر كما هو موضح:

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 بإجراء تغييرات على قاعدة البيانات ؛ لذلك عندما تقوم بترحيل قاعدة البيانات الخاصة بك ، سيتم تنفيذ أي كود في طريقة up. من ناحية أخرى ، يجب أن يتراجع أسلوب down هذه التغييرات في قاعدة البيانات ؛ لذلك كلما قمت بتشغيل rollback من migration، يجب أن تتراجع طريقة down ما فعلته طريقة up. داخل الطريقة 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

هنا يمكنك الاستمرار في حذف الإدخالات وإضافتها وتعديلها في قاعدة البيانات ، ثم استعادتها بأمر بسيط.

CRUD مع Laravel Eloquent

تسهل عمليات CRUD باستخدام مخطط ربط الكائنات (ORM) في Laravel Eloquent على مطوري 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();

هذا الرمز يحصل على جميع الطلاب. بينما يعثر الكود التالي على طالب معين عن طريق المعرف:

طالب $ = الطلاب :: find (1)؛

أيضًا ، كما هو موضح أدناه ، يصف الكود البحث عن طالب بناءً على سمة معينة.

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

بالنسبة إلى طريقة get () ، يوضح هذا الرمز كيفية العثور على طالب بمستوى أعلى من 5.

$rankStudents = Student::where('student_rank', '>', 5)->get();
تحديث السجل

يعد تحديث السجلات باستخدام Eloquent بنفس السهولة. لتحديث سجل ، ما عليك سوى العثور على السجل الذي تريد تحديثه وتعديل السمات وحفظه. على سبيل المثال ، لتغيير مستوى الصف لطالب John Doe إلى 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
النشرة الإخبارية
لا تفوّت أهم أخبار الابتكار. قم بالتسجيل لتلقيهم عن طريق البريد الإلكتروني.

المقالات الأخيرة

يوقع الناشرون وOpenAI اتفاقيات لتنظيم تدفق المعلومات التي تتم معالجتها بواسطة الذكاء الاصطناعي

أعلنت صحيفة فاينانشيال تايمز يوم الاثنين الماضي عن صفقة مع OpenAI. "فاينانشيال تايمز" ترخص صحافتها ذات المستوى العالمي...

أبريل 30 2024

المدفوعات عبر الإنترنت: إليك كيف تجعلك خدمات البث تدفع إلى الأبد

يدفع الملايين من الأشخاص مقابل خدمات البث، ويدفعون رسوم الاشتراك الشهرية. من الشائع أنك…

أبريل 29 2024

يتميز Veeam بالدعم الأكثر شمولاً لبرامج الفدية، بدءًا من الحماية وحتى الاستجابة والاسترداد

سوف تستمر شركة Coveware by Veeam في تقديم خدمات الاستجابة لحوادث الابتزاز السيبراني. ستوفر Coveware إمكانات الطب الشرعي والمعالجة...

أبريل 23 2024

الثورة الخضراء والرقمية: كيف تعمل الصيانة التنبؤية على تغيير صناعة النفط والغاز

تُحدث الصيانة التنبؤية ثورة في قطاع النفط والغاز، من خلال اتباع نهج مبتكر واستباقي لإدارة المحطات.

أبريل 22 2024

اقرأ الابتكار بلغتك

النشرة الإخبارية
لا تفوّت أهم أخبار الابتكار. قم بالتسجيل لتلقيهم عن طريق البريد الإلكتروني.

تابعنا