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

السؤال

نشر

لدي نموذجين PaymentMethod و PaymentMethodCategory حيث العلاقة بينهما هي واحد لمتعدد أي كل PaymentMethod تنتمي إلى PaymentMethodCategory و المفتاح الثانوي الذي يربط بينهما هو payment_method_category_id و العلاقة في النموذج PaymentMethod بالشكل التالي:

public function category()
{
  return $this->belongsTo(PaymentMethodCategory::class, 'payment_method_category_id', 'id');
}

لكن عند إرجاع و تحديد بعض بيانات العلاقة كما هو موضح أدناه يُعطي null:

return PaymentMethod::select('name', 'slug')
  ->with(['category' => function($query){
    $query->select('id', 'name')->where('status', 1);
  }])->get();

لكن عند حذف:

$query->select('id', 'name')

يتم إرجاع كافة البيانات، لا أدري ما المشكلة و كيف أقوم بحلها.

Recommended Posts

  • 1
نشر

حتى تستطيع إستخدام التحميل الحثيث بإستخدام التابع with يجب عليك تحديد المفتاح الثانوي ضمن الحقول التي تختارها في التابع select تأكد تماما أن إسم المفتاح الثانوي هو payment_method_category_id ثم قم بتغيير:

return PaymentMethod::select('name', 'slug')
  ->with(['category' => function($query){
    $query->select('id', 'name')->where('status', 1);
  }])->get();

إلى الشكل التالي بإضافة تحديد حقل المفتاح الثانوي:

<?php
return PaymentMethod::select('name', 'slug', 'payment_method_category_id')
  ->with(['category' => function($query){
    $query->select('id', 'name')->where('status', 1);
  }])->get();

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...