Emad Saif نشر 2 أبريل 2022 أرسل تقرير نشر 2 أبريل 2022 لدي مشروع عبارى عن متجر إلكتروني وأريد أن أقوم بإضافة منتج جديد إلى قاعدة البيانات والحصول على المعرف id الخاص بهذا المنتج بمجرد إضافته: $product = new Product; $product->name = $request->name; $product->price = $request->price; $product->save(); كيف أعرف id الخاص بهذا المنتج في لارافيل Laravel؟ 1 اقتباس
1 Mohammad Al Eik نشر 2 أبريل 2022 أرسل تقرير نشر 2 أبريل 2022 يمكنك الحصول على الid بعد حفظ المنتج في قاعدة البيانات بواسطة الاسم الخاص به.. أي كالتالي. $productId = Product::where('name', '=', $product->name)->first()->id; هنا قمنا بعملية بحث داخل جدول المنتجات للحصول على المنتج مطابق للاسم .. ثم نحصل على المعرف الخاص به ونخزنه في المتغير productId بهذه الطريقة يمكننا الحصول على ال id المنتج الذي تمت إضافته .. فيصبح الكود بشكل كامل .. ##عملية الإضافة $product = new Product; $product->name = $request->name; $product->price = $request->price; $product->save(); #عملية الحصول على المعرف $productId = Product::where('name', '=', $product->name)->first()->id; 1 اقتباس
1 Hassan Hedr نشر 2 أبريل 2022 أرسل تقرير نشر 2 أبريل 2022 يمكنك الحصول على المعرف الخاص بالنموذج مباشرة بعد حفظه كالتالي: $product->save(); $product->id; // المعرّف أو في حال كان حقل المعرف الأساسي للجدول من نوع Auto Increment فيمكنك الحصول على آخر نموذج تمت إضافته عبر الاستعلام التالي: $product = Product::orderBy('id', 'desc')->first(); في هذه الحال يجب التأكد من أن نسخة واحدة من تطبيقك فقط تتعامل مع قاعدة البيانات، لتجنب إنشاء عنصر جديد من قبل نسخة أخرى قبل حصولك على جواب الاستعلام السابق فتحصل على جواب خاطئ 1 اقتباس
1 محمد أبو عواد نشر 2 أبريل 2022 أرسل تقرير نشر 2 أبريل 2022 بالإضافة الى الطرق التي قدمها المدربون يمكنك استخدام التابع insertGetId كالتالي $id = Product::insertGetId( ['name' => $request->name,'price' => $request->price] ); ولكن لا تنسى في ملف نموذج Product ان تضيف الحقول الى الخاصية fillable كالتالي protected $fillable=['name','price']; 1 اقتباس
1 Adnane Kadri نشر 2 أبريل 2022 أرسل تقرير نشر 2 أبريل 2022 بجانب ما اقترحه المدربون يمكنك استعمال lastInsertId في حالة رغبت باستخدام insert K وهو احد توابع الواجهة DB التي تقوم بجلب آخر معرف لآخر عنصر تم ادراجه بشكل عام، يكون ذلك بعد تنفيذ الادراج: User::insert($data); $id = DB::getPdo()->lastInsertId(); 1 اقتباس
1 Ahmed Abu Hatab نشر 3 أبريل 2022 أرسل تقرير نشر 3 أبريل 2022 يمكنك أن تستخدم max Function DB::table('products')->find(DB::table('products')->max('id')); هذه ال function تجلب لك أكبر id موجود في products table . والحل الثاني أنك تجلب جميع البيانات بالترتيب التنازلي Desc ، ثم تجلب أول عنصر من البيانات $products = Product::orderBy('id', 'desc')->first(); ولكن من ناحية ال performance الطريقة الاولى أفضل . ولاحظ في الطريقة الاولى ستتعامل مع Query Builder 1 اقتباس
السؤال
Emad Saif
لدي مشروع عبارى عن متجر إلكتروني وأريد أن أقوم بإضافة منتج جديد إلى قاعدة البيانات والحصول على المعرف id الخاص بهذا المنتج بمجرد إضافته:
كيف أعرف id الخاص بهذا المنتج في لارافيل Laravel؟
5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.