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

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

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

2024-04-28 وقت القراءه : 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
}

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

Thanks man

زائر
منذ 3 سنوات

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

زائر
منذ 3 سنوات

🙏prefect

زائر
منذ 3 سنوات

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

زائر
منذ 3 سنوات

استمررررررر

Mark Adams
منذ 3 سنوات

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

زائر
منذ 3 سنوات

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

mohammed
منذ 3 سنوات

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

زائر
منذ 3 سنوات

جمييييل

زائر
منذ 3 سنوات

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

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

thanks

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

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

زائر
منذ سنة

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

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