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

السؤال

نشر

السلام عليكم 

لم أستطلع التعديل على قيمة pivot بعد تنفيد الشيرة  التالية من المفترض تكون قيمتي pivot معدلة :

       try {
            $result = $payment->execute($execution, $apiContext);  
            $user = User::find($request->userId);
            $servicesCart = $user->servicesInCart;
            $sevicesTreat = $user->servicesProccess;
            foreach($servicesCart as $service) {
                

                $user->servicesInCart()->updateExistingPivot($service->id, ['bought' => TRUE]);
                $service->save();
            } 
            $sevicesTreat = $user->servicesProccess;
            foreach($sevicesTreat as $service) {
                

                $user->servicesProccess()->updateExistingPivot($service->id , ['state' => 1]);
              
                $service->save();
            }         
        } catch (Exception $ex) {
            echo $ex;
        }

العلاقة :

    public function servicesInCart(){
        return $this->belongsToMany(Service::class)->withPivot('number_of_copies' , 'bought')->wherePivot('bought' , FALSE);        
    }
    public function servicesProccess(){
        return $this->belongsToMany(Service::class)->withPivot('state', 'id')->wherePivotIn('state' , [1,2,3]);        
    }

لكنني أجد ان قيمة bought فقط من تعدلت كما توضح الصورة 

2.png.518216a1fa4206ef7f5fdc99eefe6f55.png

 

وشكرا لكم

 

 

 

Recommended Posts

  • 1
نشر

لاحظ أن العلاقة servicesProccess محصورة فقط بالسجلات ذات الحقل state بالقيم 1 أو 2 أو 3، فعملية التحديث التالية تتم بشكل صحيح لكن لا يوجد سجلات مطابقة لشرط تلك العلاقة لديك لذا أنت لا تلاحظ التحديث

$user->servicesProccess()->updateExistingPivot($service->id , ['state' => 1]);
       ^^^^^^^^^^^^^^^^

بحسب متطلبات مشروعك إما أن تضيف الحالة 0 إلى قائمة الحالات للعلاقة السابقة كالتالي:

public function servicesProccess(){
  return $this->belongsToMany(Service::class)->withPivot('state', 'id')->wherePivotIn('state' , [0,1,2,3]);        
}                                                                                                ^

أو تقوم بتحديث state ضمن قاعدة البيانات يدويًا في حال كانت الحالة 0 خاطئة إلى أحد الحالات المسموحة (1 أو 2 أو 3)، أو تعدل عملية إدخال تلك السجلات حتى لا يتكرر الخطأ مستقبلًا

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...