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

التغيير على قيمة pivot

السؤال

السلام عليكم 

لم أستطلع التعديل على قيمة 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...