Mahmoud Alrashidi نشر 1 مارس 2021 أرسل تقرير نشر 1 مارس 2021 أحاول التخلص من الشروط في الكود التالي: if ($this->searchTerm) { $searchTerm = '%' . $this->searchTerm . '%'; $getSales = Shoppingcart::where('trans_code', 'LIKE', $searchTerm) ->select('trans_code', 'created_at', DB::raw("SUM(sub_total) as total")) ->groupBy('trans_code') ->paginate(10); } else { $getSales = Shoppingcart::with(['user']) ->select('trans_code', 'created_at', DB::raw("SUM(sub_total) as total")) ->groupBy('trans_code') ->paginate(10); } و تقليصه قليلا عن طريق إستخدام when كيف يُمكنني عمل ذلك حاولت لكن لم أستطع. 1 اقتباس
1 سمير عبود نشر 1 مارس 2021 أرسل تقرير نشر 1 مارس 2021 يُمكنك إستخدام when بالشكل التالي: $getSales = Shoppingcart::when($this->searchTerm, function ($query, $searchTerm) { return $query->where('trans_code', 'LIKE', "%{$searchTerm}%"); }, function ($query) { return $query->with('user'); })->select('trans_code', 'created_at', DB::raw("SUM(sub_total) as total")) ->groupBy('trans_code') ->paginate(10); يُمكنك الإطلاع على توثيق موسوعة حسوب: البنود المشروطة (Conditional Clauses) و ستجد مثال يُشابه لما تريد في هذه الفقرة: يُنفّذ التابع when النطاق المُغلق المحدّد Closure فقط عندما تكون المعاملة الأولى true. في حالة كانت المعاملة الأولى false لن يُنفّذ النطاق المغلق Closure. تستطيع تمرير نطاق مُغلق Closure آخر كثالث معامل للتابع when. سيُنفّذ هذا النطاق المُغلق في حالة كانت المعاملة الأولى false. 1 اقتباس
السؤال
Mahmoud Alrashidi
أحاول التخلص من الشروط في الكود التالي:
و تقليصه قليلا عن طريق إستخدام when كيف يُمكنني عمل ذلك حاولت لكن لم أستطع.
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.