تحسين عمليات CRUD باستخدام Laravel Eloquent
عند العمل مع قاعدة بيانات في Laravel، من الشائع إدراج السجلات أو تحديثها. ولتحقيق ذلك، غالبًا ما يلجأ المطورون إلى العبارات الشرطية التي تتحقق من وجود السجل قبل اتخاذ قرار بإجراء إدراج أو تحديث.
طريقة firstOrNew()
لحسن الحظ، يوفر Eloquent حلاً أكثر كفاءة من خلال التابع firstOrNew(). تتحقق هذه الطريقة من وجود سجل بناءً على معايير محددة وتقوم بإرجاع أول سجل مطابق إذا تم العثور عليه؛ وإلا فإنه يقوم بإنشاء مثيل جديد للنموذج.
مثال الاستخدام
فكر في المثال التالي:
$shopOwner = ShopMeta::where('shopId', '=', $theID)
->where('metadataKey', '=', 2001)
->firstOrNew();
if ($shopOwner->exists) {
// Update the existing record
} else {
// Insert a new record
}
في هذا المثال، يتم استخدام الأسلوب firstOrNew() للعثور على سجل ShopMeta بناءً على معرف المتجر ومفتاح البيانات الوصفية. إذا كان السجل موجودًا، فسيتم تنفيذ كتلة if، ويتم تحديث السجل الموجود. بخلاف ذلك، يتم تنفيذ الكتلة else، ويتم إدراج سجل جديد.
مثال موسع
إليك مثال أكثر شمولاً يوضح قوة firstOrNew():
$user = User::firstOrNew(array('name' => Input::get('name')));
$user->foo = Input::get('foo');
$user->save();
الوثائق المحدثة
يرجى ملاحظة أن رابط التوثيق المقدم في الإجابة لم يعد محدثًا. للحصول على أحدث إصدار من Laravel، راجع الوثائق التالية:[وثائق Laravel المحدثة](https://laravel.com/docs/8.x/eloquent)تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3