اذهب إلى المحتوى

السؤال

نشر

في لارافيل Laravel يمكن البحث عن مستخدم من خلال id الخاص به:

$user = User::find($id);

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

هل يمكن القيام بهذا الأمر في لارافيل Laravel بشكل تلقائي، أم يجب أن أقوم بهذا الأمر يدويًا؟

Recommended Posts

  • 1
نشر

يوفر لارافيل Laravel التابع updateOrCreate  والذي يقوم بإستقبال بيانات المستخدم الذي تبحث عنه، وكذلك البيانات التي تريد تحديثها:

$user = User::updateOrCreate(
    ['id' => 5],
    ['name' => "new full name", 'email' => "mail@gmail.com"]
);

بهذا الشكل سوف يتم البحث عن المستخدم الذي يحمل المعرف 5 وفي حالة تم العثور عليه، سوف يتم تغير اسمه وبريده الإلكتروني، وإذا لم يكن موجودًا من الأساس، سوف يتم إنشائه من جديد.

ملاحظة: يقوم التابع updateOrCreate بحفظ السجل مباشرةً في قاعدة البيانات، لذلك ليس عليك إستخدام التابع save لحفظ التغيرات.

توثيق التابع updateOrCreate في موسوعة حسوب

  • 1
نشر (معدل)

يمكنك إستخدام عدة حلول سهلة وبسيطة ، مثلًا 

firstOrCreate()

او

firstOrNew()

تعمل هاتان الدالتان على البحث عن قيمة معينة في الداتابيز ، في حال لم تتوفر أو لم يجدها يتم إضافة هذه القيمة كـ row ، والكود التالي كمثال

$user = User::firstOrCreate([
    'username' => 'Mohamed Ali'
]);

يقوم هذا الكود بالبحث عن المستخدم بإسم "Mohamed Ali" في حال توفر هذا الإسم يتم إرجاعه كـ $user

في حال لم يتوفر يتم إضافته لقاعدة البيانات وإرجاعه كذلك كـ $user

توثيق firstOrCreate & firstOrNew على ويكي حسوب

تم التعديل في بواسطة Ahmed.Sayed

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...