0Pricing
PHP Academy · درس

نماذج Eloquent وعمليات الترحيل

أنشئوا النماذج وعمليات ترحيل قاعدة البيانات باستخدام أوامر Artisan

نماذج Eloquent وعمليات الترحيل درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.

ما هو Eloquent؟

Eloquent هو ORM بنمط ActiveRecord في Laravel. يقابل كل جدول في قاعدة البيانات فئة Model تمثّل صفًا وتوفر طرقًا للاستعلام.

إنشاء نموذج

استخدم Artisan لإنشاء نموذج. أضف -m لإنشاء ملف ترحيل أيضًا.

$ php artisan make:model Post -m
# Creates:
# app/Models/Post.php
# database/migrations/xxxx_create_posts_table.php

فئة النموذج

لا يحتاج نموذج Eloquent الأساسي إلا إلى الوراثة من Model. ويستنتج Eloquent اسم الجدول من اسم الفئة بصيغة الجمع وsnake_case.

<?php
namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    protected $fillable = ["title", "body", "user_id"];
}

ملف الترحيل

يحدد الترحيل مخطط الجدول. شغّل php artisan migrate لتطبيقه.

<?php
public function up(): void
{
    Schema::create("posts", function (Blueprint $table) {
        $table->id();
        $table->string("title");
        $table->text("body");
        $table->foreignId("user_id")->constrained()->cascadeOnDelete();
        $table->timestamps();
    });
}

تشغيل الترحيلات

طبّق الترحيلات المعلّقة على قاعدة البيانات.

$ php artisan migrate
# Rollback:
$ php artisan migrate:rollback
# Fresh (drop all and re-migrate):
$ php artisan migrate:fresh

$fillable مقابل $guarded

تحدد $fillable الأعمدة المسموح باستخدامها في الإسناد الجماعي. وتحظر $guarded أعمدةً معينة. لا تضبط $guarded = [] في بيئة الإنتاج من دون دراسة دقيقة.

<?php
// Whitelist approach (recommended):
protected $fillable = ["title", "body"];

// Blacklist approach:
protected $guarded = ["id", "created_at"];

التحويلات

تحوّل الخاصية $casts قيم الأعمدة تلقائيًا إلى أنواع PHP.

<?php
protected $casts = [
    "is_published" => "boolean",
    "metadata"     => "array",       // JSON column
    "published_at" => "datetime",
];

المخفي والمرئي

تستبعد الخاصية $hidden أعمدةً من التسلسل إلى JSON أو مصفوفة، وهذا مفيد لكلمات المرور والرموز المميّزة.

<?php
protected $hidden = ["password", "remember_token"];

اسم جدول مخصّص

تجاوز اسم الجدول الافتراضي باستخدام الخاصية $table.

<?php
protected $table = "blog_posts"; // instead of "posts"

الحذف الناعم

أضف السمة SoftDeletes وعمود deleted_at. لا تُحذف السجلات فعليًا، بل تُعلَّم بطابع زمني وتُستبعد من الاستعلامات العادية.

<?php
use Illuminate\Database\Eloquent\SoftDeletes;

class Post extends Model {
    use SoftDeletes;
}

الطوابع الزمنية

يدير Eloquent افتراضيًا العمودين created_at وupdated_at. اضبط $timestamps = false لتعطيل ذلك.

الملخص

تربط نماذج Eloquent جداول قاعدة البيانات. استخدم Artisan لإنشاء النماذج والترحيلات معًا. حدّد $fillable لضمان أمان الإسناد الجماعي. استخدم $casts للتحويل التلقائي للأنواع.

تحقّق سريعًا

ما الخيار في Artisan الذي ينشئ ترحيلًا إلى جانب النموذج؟

الأسئلة الشائعة

هل درس «نماذج Eloquent وعمليات الترحيل» مجاني؟

نعم — نص درس «نماذج Eloquent وعمليات الترحيل» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.

ماذا ستتعلم في «نماذج Eloquent وعمليات الترحيل»؟

أنشئوا النماذج وعمليات ترحيل قاعدة البيانات باستخدام أوامر Artisan تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟

لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «نماذج Eloquent وعمليات الترحيل»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟

نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. نماذج Eloquent وعمليات الترحيل
  2. عمليات CRUD باستخدام Eloquent
  3. علاقات Eloquent
  4. التحميل المسبق ونطاقات الاستعلام
← العودة إلى PHP Academy