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