• 0

كيفية جلب علاقة من علاقة في لارافل

السلام عليكم.

أريد جلب الإختبارات الموجودة بقاعدة البيانات ضمن شرط 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
بتاريخ 24 دقائق مضت قال محمود رضا موسى:

أريد جلب العلاقة profile ضمن العلاقة teacher ضمن exam يعني كالتالي

أضف العلاقات التي تريدها مع with أي جرب التالي:

Exam::with(['teacher.profile', 'subject'])
            ^^^^^^^^^^^^^^^^

الشكل العام لها:

with('relation1.relation2.relation3')->get();

اجلب العلاقات المرتبطة الواحدة تلوَ الأخرى..

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

يُمكنك إستخدام التحميل الحثيث المتداخل بالشكل التالي:

<?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();

في هذه الحالة نرغب بتحميل العلاقة أيضاً لكن في حالات أخرى نكون بحاجة لعمل شروط على حقول العلاقة فالطريقة الثانية تساعد في مثل هذه الحالات.

2 اشخاص أعجبوا بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن