محمود موسى2 نشر 9 أغسطس 2021 أرسل تقرير نشر 9 أغسطس 2021 السلام عليكم. أريد جلب الإختبارات الموجودة بقاعدة البيانات ضمن شرط level_id فأستخدم الكود التالي Exam::where('level_id', $request->level) ->select('id', 'subject_id', 'teacher_id', 'created_at') ->get(); وأجلب معها relation ['teacher', 'subject'] فيصبح الكود كالتالي Exam::with(['teacher', 'subject']) ->where('level_id', $request->level) ->select('id', 'subject_id', 'teacher_id', 'created_at') ->get(); سؤالي هو أن علاقة الteacher المجلوبة ضمن collection exams تحتوي على علاقة profile فأريد جلب علاقة الprofile أيضا التي توجد داخل علاقة الteacher توضيح أكثر: كل exam له teacher وكل teacher له profile أريد جلب العلاقة profile ضمن العلاقة teacher ضمن exam يعني كالتالي @foreach($exams as $exam) {{ $exam->teacher->profile }} @endforeach فكيف أفعل هذا وشكرا. أستعمل لارافل 8 1 اقتباس
0 Wael Aljamal نشر 9 أغسطس 2021 أرسل تقرير نشر 9 أغسطس 2021 بتاريخ 24 دقائق مضت قال محمود رضا موسى: أريد جلب العلاقة profile ضمن العلاقة teacher ضمن exam يعني كالتالي أضف العلاقات التي تريدها مع with أي جرب التالي: Exam::with(['teacher.profile', 'subject']) ^^^^^^^^^^^^^^^^ الشكل العام لها: with('relation1.relation2.relation3')->get(); اجلب العلاقات المرتبطة الواحدة تلوَ الأخرى.. 1 اقتباس
1 سمير عبود نشر 9 أغسطس 2021 أرسل تقرير نشر 9 أغسطس 2021 يُمكنك إستخدام التحميل الحثيث المتداخل بالشكل التالي: <?php Exam::with(['teacher', 'teacher.profile', 'subject']) ->where('level_id', $request->level) ->select('id', 'subject_id', 'teacher_id', 'created_at') ->get(); كما قد نرغب أحياناً في التحديد او عمل شروط معينة على العلاقة نفسها فنُمرر مصفوفة للتابع with حيث المفتاح هو إسم العلاقة والقيمة تكون عبارة عن closure نحدد فيها ما نرغب به بهذا الشكل مثلاً: <?php Exam::with(['teacher' => function ($query) { $query->with('profile'); }, 'subject']) ->where('level_id', $request->level) ->select('id', 'subject_id', 'teacher_id', 'created_at') ->get(); في هذه الحالة نرغب بتحميل العلاقة أيضاً لكن في حالات أخرى نكون بحاجة لعمل شروط على حقول العلاقة فالطريقة الثانية تساعد في مثل هذه الحالات. 3 اقتباس
السؤال
محمود موسى2
السلام عليكم.
أريد جلب الإختبارات الموجودة بقاعدة البيانات ضمن شرط level_id فأستخدم الكود التالي
وأجلب معها relation ['teacher', 'subject'] فيصبح الكود كالتالي
سؤالي هو أن علاقة الteacher المجلوبة ضمن collection exams تحتوي على علاقة profile
فأريد جلب علاقة الprofile أيضا التي توجد داخل علاقة الteacher
توضيح أكثر:
كل exam له teacher وكل teacher له profile
أريد جلب العلاقة profile ضمن العلاقة teacher ضمن exam يعني كالتالي
@foreach($exams as $exam) {{ $exam->teacher->profile }} @endforeach
فكيف أفعل هذا وشكرا.
أستعمل لارافل 8
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.