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

الحصول على قيمة pivot من محرك القوالب blade laravel

السؤال

السلام عليكم 

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

اردت الحصول على قيمة 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

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

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

  • 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)

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

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

  • 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 , الآن عليك تفحص منطق الكود الذي تحاول تنفيذه

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

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

حاول ان تضع أقواس عند استدعاء العلاقة servicesInCart بهذا الشكل


@if ( Auth::user()->servicesInCart()->pivot->state == 1)
                                  ^^^

ثم جرب الامر

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

Untitled.thumb.png.c2f11101fa9ae18f37c1d6a088a616ce.png

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

  • 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

 

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

  • 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 

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

. شكرا

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...