محمود موسى2 نشر 7 أغسطس 2021 أرسل تقرير نشر 7 أغسطس 2021 (معدل) سلام عليكم. اريد اعمل جلب للبيانات من جدول exams_enter_attemps هذا الجدول يتكون من حقل يدعى student_id وهو foreign key من جدول students. جدول students يحتوي على حقل level. اريد جلب exams_enter_attemps للطلاب اللذين لهم level=1 فكيف افعلها؟ يعني كتخيل بسيط باللغة الإنجليزية select exams_enter_attemps when student level=1. استخدم لارافل ٨ وشكرا جزيلا تم التعديل في 7 أغسطس 2021 بواسطة محمود رضا موسى اسم التقنية المستخدمة اقتباس
0 سمير عبود نشر 7 أغسطس 2021 أرسل تقرير نشر 7 أغسطس 2021 بإمكانك إستخدام التابع whereHas لتحقيق ما تريد. سأعطيك مثالاً لتقريب الفهم لنفترض أنه لدي نموذج Module و نموذج Permission حيث أن كل Permission ينتمي إلى Module و العلاقة في النموذج Permission بالشكل التالي: public function module() { return $this->belongsTo(Module::class); } نريد جلب كافة الpermissions التي يكون الmodule الخاص بها مُفعل حيث يوجد حقل في جدول modules إسمه active يأخذ القيمة 0 أو 1 لذلك بالإمكان إستخدام whereHas بالشكل التالي: <?php $permissions = Permission::whereHas('module', function($q) { $q->where('active', 1); })->get(); بمعنى إجلب كل الصلاحيات التي لها موديل و في نفس الوقت يكون هذا الموديل مفعل. المثال الذي طرحته يُشبه تماماً ما تريد فقط تأكد من إنشائك للعلاقة student بشكل سليم . 3 اقتباس
0 Wael Aljamal نشر 7 أغسطس 2021 أرسل تقرير نشر 7 أغسطس 2021 هل يمكنك إرفاق شيفرات النماذج models الخاصة بكلا الجدولين؟ بشكل عام، علينا عمل join بين الجدولين (على المفتاح الأجنبيي student_id) لتكون عبارة SQL هكذا: select exams_enter_attemps from exams_enter_attemps e join student s on student_id when s.level=1 وستكون العلاقة تقريبا هكذا: DB::table("exams_enter_attemps e") ->join("student s", function($join){ $join->on("student_id", "when", "s.level"); }) ->select("exams_enter_attemps") ->get(); الشكل العام للعلاقة الخاصة بالربط JOIN: use Illuminate\Support\Facades\DB; $users = DB::table('users') ->join('contacts', 'users.id', '=', 'contacts.user_id') ->join('orders', 'users.id', '=', 'orders.user_id') ->select('users.*', 'contacts.phone', 'orders.price') ->get(); يمكنك تصفح التوثيق من هنا: laravel 8 queries#joins 1 اقتباس
السؤال
محمود موسى2
سلام عليكم.
اريد اعمل جلب للبيانات من جدول exams_enter_attemps
هذا الجدول يتكون من حقل يدعى student_id وهو foreign key من جدول students.
جدول students يحتوي على حقل level.
اريد جلب exams_enter_attemps للطلاب اللذين لهم level=1 فكيف افعلها؟
يعني كتخيل بسيط باللغة الإنجليزية
select exams_enter_attemps when student level=1.
استخدم لارافل ٨
وشكرا جزيلا
تم التعديل في بواسطة محمود رضا موسىاسم التقنية المستخدمة
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.