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

كيفية عمل شرط عن طريق علاقة one to many في لارافيل

محمود موسى2

السؤال

سلام عليكم.

اريد اعمل جلب للبيانات من جدول exams_enter_attemps

هذا الجدول يتكون من حقل يدعى student_id وهو foreign key من جدول students. 

جدول students يحتوي على حقل level.

 

اريد جلب exams_enter_attemps للطلاب اللذين لهم level=1 فكيف افعلها؟

يعني كتخيل بسيط باللغة الإنجليزية 

select exams_enter_attemps when student level=1.

استخدم لارافل ٨

وشكرا جزيلا

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

Recommended Posts

  • 0

هل يمكنك إرفاق شيفرات النماذج 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

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

  • 0

بإمكانك إستخدام التابع 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 بشكل سليم .

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...