J'ai un morceau de code comme ceci:
$products = Product::all()
if ($search_value) {
$products = $products->where('name', 'LIKE', "%$search_value%");
}
$products = $products->orderBy('created_at', 'desc')->skip(10)->take(10)->with('tags')->get();
J'ai eu l'erreur suivante:
BadMethodCallException in Macroable.php line 81:
Method orderBy does not exist.
Je suppose que orderBy
doit suivre Product::
directement, mais je ne peux pas enregistrer $products = Product::
, puis-je?
Aucune suggestion? Merci.
Vous essayez d'utiliser la méthode orderBy()
sur la collection Eloquent. Essayez d'utiliser sortByDesc()
à la place.
Vous pouvez également changer $products = Product::all();
en $products = new Product();
. Ensuite, tout votre code fonctionnera comme prévu.
il suffit d'utiliser le code d'une ligne, cela fonctionnera bien
$product= Product::orderBy('created_at','desc')->get();
Vous obtenez d’abord les données all()
, puis vous essayez de trier ce qui est faux. Vous devez résoudre ce problème en supprimant
$products = Product::all()
et changer votre code en quelque chose comme ça
if ($search_value) {
$products = Product::where('name', 'LIKE', "%$search_value%");
}
else {
$products = Product::orderBy('created_at', 'desc')->skip(10)->take(10)->with('tags')->get();
}
J'espère que vous aurez l'idée de modifier votre code.
Votre requête est fausse.
tout supprimer de $products = Product::all()
et mettre get()
à la fin de votre requête.
$table_Data = DB::table('tbl_product')->orderBy('id','DESC');
Vous pouvez utiliser ceci ...