انتقل إلى محتوى الدرس

Conditional Persistence with OrCreate الإدراج والتحديث المشروط بدون تكرار

حفظ وتحديث نماذج Eloquent عبر save و create وتأمين الأعمدة الحساسة ضد ثغرة الإسناد الجماعي باستخدام $fillable.
1 صفوف تعليمية
إطار العمل Laravel
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

كثيراً ما تحتاج للبحث عن سجل بحقل فريد كالمعرف النصي وإنشائه فقط إن لم يكن موجوداً، أو تحديثه إن وجد. تعيد دالة firstOrCreate السجل الموجود أو تنشئ سجلاً جديداً، بينما تقوم دالة updateOrCreate بتحديث السجل المطابق أو إدراج سجل جديد في خطوة واحدة أنيقة.

  • ابحث أو أنشئ (firstOrCreate): البحث بمعاملات المصفوفة الأولى، وعند غياب السجل يدمج المصفوفتين وينشئه فوراً.
  • حدث أو أنشئ (updateOrCreate): تحديث السجل المطابق بقيم المصفوفة الثانية أو إنشاؤه من جديد إن لم يوجد.
  • ابحث أو جهز (firstOrNew): إرجاع السجل الموجود أو تجهيز كائن جديد في الذاكرة دون حفظه حتى تستدعي save.
PHP
$flight = Flight::firstOrCreate(
    ['number' => 'MS-200'],
    ['name' => 'Luxor Shuttle', 'origin' => 'CAI']
);
$flight = Flight::updateOrCreate(
    ['number' => 'MS-200'],
    ['destination' => 'LXR']
);