ابراهيم الخليل سماني نشر 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 بتاريخ On 2/5/2022 at 17:56 قال 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 بتاريخ On 2/5/2022 at 18:05 قال 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 بتاريخ On 2/5/2022 at 18:53 قال 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 بتاريخ On 2/5/2022 at 17:53 قال محمد أبو عواد: حاول ان تضع أقواس عند استدعاء العلاقة servicesInCart بهذا الشكل @if ( Auth::user()->servicesInCart()->pivot->state == 1) ^^^ ثم جرب الامر أظهر المزيد جربت تغيير الخطأ 1 اقتباس
0 ابراهيم الخليل سماني نشر 2 مايو 2022 الكاتب أرسل تقرير نشر 2 مايو 2022 بتاريخ On 2/5/2022 at 17:59 قال محمد أبو عواد: لاحظ أنك تستخدم الخاصية 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 بتاريخ On 2/5/2022 at 18:24 قال محمد أبو عواد: ربما بسبب تعريف العلاقة حيث أنك تضع الحقلين 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
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.