لارافيل, Model / 2024-03-04

خصائص الوقت والترقيم وقواعد البيانات والخيارات في Laravel Model

خصائص الوقت والترقيم وقواعد البيانات والخيارات في Laravel Model

2024-03-04 وقت القراءه : 2 دقائق

عند إنشاء Model بإسم Article، فإنه بشكل إفتراضي يتعامل مع جدول articles في قاعدة البيانات، لكن ماذا لو أردنا تغيير إسم الجدول في قاعدة البيانات إلى my_articles ، هنا تحدث مشكله، حيث لا يتعرف الموديل على الجدول my_articles.

لكن لارافيل وفرت لنا مجموعة من الخيارات التي يمكن إستخدامها لحل هذه المشاكل والتي سنتعرف على جزء كبير منها في هذه المقال.

إذا أردنا تغيير إسم الجدول الإفتراضي في قاعدة البيانات

class Article extends Model{
 protected $table='my_article';
}

بالوضع الإفتراضي فإن لارافيل تفترض أنه يوجد حقل increment بإسم id، لكن ماذا إذا أردنا تغييره

protected $primaryKey = 'article_id';

اذا كان لدينا جدول ليس به autoincrement.

public $incrementing = false;

الترقيم pagination بالوضع الإفتراضي هو 15 صف، لتغييره

protected $perPage = 5;

يفترض لارافيل في أي جدول أنه يوجد حقلين من نوع timestamp وهما created_at, updated_at لكن ماذا اذا كان لدينا جدول لا يحتوي على هذين الحقلين.

public $timestamps = false;

واذا كان لدينا هذين الحقلين لكن لا نريد إدخال البيانات بهما.

public $timestamps = false;

إذا أردنا تغيير إسماء هذين الحقلين إلى أسماء أخرى created_at = created , updated_At= updated

public const CREATED_AT = 'created';
public const UPDATED_AT = 'updated';

إذا أردنا إضافة حقول timestamps أخرى

protected $dates = ['upgraded_at', 'purchased_at'];

بالوضع الإفتراضي فإن تنسيق الوقت في لارافيل هو Y-m-d H:i:s ماذا لو أردنا تغيير التنسيق

protected $dateFormat = 'm/d/Y H:i:s';

ملخص الأوامر

class Article extends Model{
    protected $fillable = ['title', 'text'];//fillable field come from forms
    protected $guarded = ['id']; //inverse fillable
    protected $table = 'blog_article'; //if table name is not articles
    protected $primaryKey = 'article_id'; //if primary_key is not id
    public $incrementing = false; //no auto increment
    protected $perPage = 5; //by default pagination is 50.
    public $timestamps = false; //to not create timestamp table
    public const CREATED_AT = 'created'; //to change created_at timestamp  
    public const UPDATED_AT = 'updated';
    protected $dates = ['upgrade_at' . 'paid_at', 'purchase_time'];
    protected $dateFormat = 'm/d/y H:i:s'; //by default Y-m-d H:i:s
}

التعليقات
زائر
منذ سنتين

Thanks man

زائر
منذ سنتين

معلومات قيمه جدا ربنا يبارك لك

زائر
منذ سنتين

🙏prefect

زائر
منذ سنتين

احيك جدا علي المعلومات دي وطريقة عرض المعلومات استمر بالتوفيق

زائر
منذ سنتين

استمررررررر

Mark Adams
منذ سنتين

ارجوك ياغالى اعمل قناة على يوتيوب واقد هذه الدروسة الجميلة المختصره انها جيده جدا

زائر
منذ سنتين

ربنا يكرمك وينفعك بعلمه يارب اتمني حضرتك متوثفش عن كتابه المقالات و تتعمق اكتر ف التفاصيل بتاعه لارفيل هتبقا شئ خرافي ربنا ينفعك بعلم يارب

mohammed
منذ سنتين

استمر يا بطل ربنا يزيدك

زائر
منذ سنتين

جمييييل

زائر
منذ سنتين

جميل جدا ياريت تستمتر وتتعمق لنا اكتر

زائر
منذ سنتين

thanks

محمد
منذ سنتين

مشكور استاذ على المعلومات القيمة اتمنى المزيد من المنشورات نحتاج المزيد

زائر
منذ سنة

محتواك رائع جدا. و الشيء الاروع هو استعمال اللغة العربية

إضافة تعليق
Loading...