ابراهيم الخليل سماني نشر 2 مايو 2022 أرسل تقرير مشاركة نشر 2 مايو 2022 السلام عليكم عيدكم مبارك وكل عام وانتم بخير وينعاد عليكم بكل خير. اردت الحصول على قيمة 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 ولكن في الأخير يظهر لي الخطأ التالي : 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
1 محمد أبو عواد نشر 2 مايو 2022 أرسل تقرير مشاركة نشر 2 مايو 2022 حاول ان تضع أقواس عند استدعاء العلاقة servicesInCart بهذا الشكل @if ( Auth::user()->servicesInCart()->pivot->state == 1) ^^^ ثم جرب الامر 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
1 محمد أبو عواد نشر 2 مايو 2022 أرسل تقرير مشاركة نشر 2 مايو 2022 بتاريخ الآن قال 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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
1 محمد أبو عواد نشر 2 مايو 2022 أرسل تقرير مشاركة نشر 2 مايو 2022 بتاريخ 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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
1 محمد أبو عواد نشر 2 مايو 2022 أرسل تقرير مشاركة نشر 2 مايو 2022 بتاريخ 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 , الآن عليك تفحص منطق الكود الذي تحاول تنفيذه 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 ابراهيم الخليل سماني نشر 2 مايو 2022 الكاتب أرسل تقرير مشاركة نشر 2 مايو 2022 بتاريخ 9 ساعات قال محمد أبو عواد: حاول ان تضع أقواس عند استدعاء العلاقة servicesInCart بهذا الشكل @if ( Auth::user()->servicesInCart()->pivot->state == 1) ^^^ ثم جرب الامر جربت تغيير الخطأ 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 ابراهيم الخليل سماني نشر 2 مايو 2022 الكاتب أرسل تقرير مشاركة نشر 2 مايو 2022 بتاريخ 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 ؟ 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 ابراهيم الخليل سماني نشر 2 مايو 2022 الكاتب أرسل تقرير مشاركة نشر 2 مايو 2022 بتاريخ 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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
ابراهيم الخليل سماني
السلام عليكم
عيدكم مبارك وكل عام وانتم بخير وينعاد عليكم بكل خير.
اردت الحصول على قيمة state
public function servicesInCart(){ return $this->belongsToMany(Service::class)->withPivot(['Quantity' , 'state'])->wherePivot('state' , 0); }
في محرك القوالب blade بهذا الشكل :
ولكن في الأخير يظهر لي الخطأ التالي :
رابط هذا التعليق
شارك على الشبكات الإجتماعية
7 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.