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

السؤال

نشر

السلام عليكم 

عيدكم مبارك وكل عام وانتم بخير وينعاد عليكم بكل خير.

اردت الحصول على قيمة state

    public function servicesInCart(){
        return $this->belongsToMany(Service::class)->withPivot(['Quantity' , 'state'])->wherePivot('state' , 0);        
    }

في محرك القوالب blade بهذا الشكل :

                               @if ( Auth::user()->servicesInCart->pivot->state == 1)
                               <li class="nav-item">
                                <a @disabled(true) class="nav-link" href="{{ route('authors.list') }}">إدارة طلبي</a>
                              </li>
                               @endif

ولكن في الأخير يظهر لي الخطأ التالي :

Untitled.thumb.png.8a63c08f00eaf9c37ca4ec5f8c68cbba.png

Recommended Posts

  • 1
نشر
بتاريخ الآن قال Brahim Semmani:

جربت تغيير الخطأ 

لاحظ أنك تستخدم الخاصية pivot من خلال العلاقة servicesInCart بشكل مباشر وهذا خاطئ , عند استدعاء العلاقة servicesInCart سوف يتم جلب عدد من الكائنات من الموديل Service وكل كائن يحتوي على الخاصية pivot , اذن يكون الاستخدام كالتالي

@foreach(Auth::user()->servicesInCart() as $service)
  @if ( $service->pivot->state == 1)
    <li class="nav-item">
      <a @disabled(true) class="nav-link" href="{{ route('authors.list') }}">إدارة طلبي</a>
    </li>
  @endif
@endforeach

جرب الامر وأخبرنا بالنتيجة

  • 0
نشر
بتاريخ 9 ساعات قال محمد أبو عواد:

لاحظ أنك تستخدم الخاصية pivot من خلال العلاقة servicesInCart بشكل مباشر وهذا خاطئ , عند استدعاء العلاقة servicesInCart سوف يتم جلب عدد من الكائنات من الموديل Service وكل كائن يحتوي على الخاصية pivot , اذن يكون الاستخدام كالتالي


@foreach(Auth::user()->servicesInCart() as $service)
  @if ( $service->pivot->state == 1)
    <li class="nav-item">
      <a @disabled(true) class="nav-link" href="{{ route('authors.list') }}">إدارة طلبي</a>
    </li>
  @endif
@endforeach

جرب الامر وأخبرنا بالنتيجة

جربت صحيح ملاحظة مهمة يا أستاذ شكرا لك لكن  تعذر العثور على pivot ؟

Untitled.thumb.png.493fce2f0b9a7d83efe4035bd0d20f73.png

 

  • 1
نشر
بتاريخ 11 دقائق مضت قال Brahim Semmani:

جربت صحيح ملاحظة مهمة يا أستاذ شكرا لك لكن  تعذر العثور على pivot ؟

 

ربما بسبب تعريف العلاقة حيث أنك تضع الحقلين Quantity و state بداخل مصفوفة , لاحظ

public function servicesInCart(){
        return $this->belongsToMany(Service::class)->withPivot(['Quantity' , 'state'])->wherePivot('state' , 0);  
                                                               ^^^^^^^^^^^^^^^^^^^^^^^
    }

أرجو منك تعديل العلاقة كالتالي

public function servicesInCart(){
        return $this->belongsToMany(Service::class)->withPivot('Quantity' , 'state')->wherePivot('state' , 0);        
    }

ثم حاول ازالة الأقواس عند استدعاء العلاقةservicesInCart servicesInCart كالتالي

@foreach(Auth::user()->servicesInCart as $service)

وأخبرنا بالنتيجة

  • 0
نشر
بتاريخ 9 ساعات قال محمد أبو عواد:

ربما بسبب تعريف العلاقة حيث أنك تضع الحقلين Quantity و state بداخل مصفوفة , لاحظ


public function servicesInCart(){
        return $this->belongsToMany(Service::class)->withPivot(['Quantity' , 'state'])->wherePivot('state' , 0);  
                                                               ^^^^^^^^^^^^^^^^^^^^^^^
    }

أرجو منك تعديل العلاقة كالتالي


public function servicesInCart(){
        return $this->belongsToMany(Service::class)->withPivot('Quantity' , 'state')->wherePivot('state' , 0);        
    }

ثم حاول ازالة الأقواس عند استدعاء العلاقةservicesInCart servicesInCart كالتالي


@foreach(Auth::user()->servicesInCart as $service)

وأخبرنا بالنتيجة

شكرا أستاذ @محمد أبو عواد ’ لم يظهر الخطأ لكن لم يؤدي الغرض المطلوب رغم أن قيمة $service->pivot->state == 1 

بالفعل محققة لما ألقيت نظرة على قاعدة البيانات .

. شكرا

  • 1
نشر
بتاريخ 2 دقائق مضت قال Brahim Semmani:

شكرا أستاذ @محمد أبو عواد ’ لم يظهر الخطأ لكن لم يؤدي الغرض المطلوب رغم أن قيمة $service->pivot->state == 1 

بالفعل محققة لما ألقيت نظرة على قاعدة البيانات .

. شكرا

يتبقى الآن أن تقوم بتفحص المنطق جيدا والكود الذي كتبته , لاحظ أن العلاقة servicesInCart تقوم بإرجاع جميع الخدمات التي قيمة الحقل state لها تساوي 0 , لاحظ

public function servicesInCart(){
        return $this->belongsToMany(Service::class)->withPivot(['Quantity' , 'state'])->wherePivot('state' , 0);   
                                                                                                   ^^^^^^^^^^^^
    }

فبالتأكيد عند تفحص الشرط 

@if ( $service->pivot->state == 1)

لن يتحقق لأن جميع البيانات التي سوف يتم ارجاعها من العلاقة servicesInCart قيمة الحقل state لها تساوي 0 , الآن عليك تفحص منطق الكود الذي تحاول تنفيذه

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...