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

السؤال

نشر

لدي متجر بسيط أعمل عليه، ومبني بإستخدام لارافيل Laravel، وأحاول أن أقوم بجلب بعض البيانات في حالة البحث عن منتج معين أو جلب كل المنتجات:

if ($search_query) {
    $products = Product::where('name', 'LIKE', "%$search_query%");
} else {
    $products = Product::all()
}

$products = $products->orderBy('created_at', 'desc')->with('tags')->get();

المشكلة الآن أن السطر الأخير يظهر الخطأ التالي:

Method orderBy does not exist.

ولا أفهم كيف تكون الدالة orderBy غير موجودة!

ما المشكلة هنا وكيف أقوم بإصلاحها؟

Recommended Posts

  • 1
نشر

المشكلة في حالة عدم وجود استعلام ضمن search_query أن السطر ضمن else يجلب كل البيانات ورسالة الخطأ تخبرك بعدم وجود الدالة orderBy ضمن مجموعة المنتجات التي تم جلبها، يمكنك حل المشكلة بإنشاء استعلام query بداية ثم تطبيق الشروط عليه فقط في حال كان هناك داعٍ لذلك، وبعدها وفقط في آخر سطر تنفذ الاستعلام باستخدام get لتكون الشيفرة كما يلي:

$query = Product::query();

if ($search_query) {
    $query->where('name', 'LIKE', "%$search_query%");
}

$products = $query->orderBy('created_at', 'desc')->with('tags')->get();

 

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...