"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تحسين عمليات CRUD بشكل فعال باستخدام طريقة firstOrNew() الخاصة بـ Laravel Eloquent؟

كيفية تحسين عمليات CRUD بشكل فعال باستخدام طريقة firstOrNew() الخاصة بـ Laravel Eloquent؟

تم النشر بتاريخ 2024-11-06
تصفح:445

How to Effectively Optimize CRUD Operations Using Laravel Eloquent\'s firstOrNew() Method?

تحسين عمليات 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)

بيان الافراج أعيد طبع هذه المقالة على: 1729385416 في حالة وجود أي مخالفة، يرجى التواصل مع [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3