Méthode orderBy n'existe pas dans Laravel Éloquent?
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
besoin de suivre Product::
directement, mais je ne peux pas enregistrer $products = Product::
, puis-je?
Des suggestions? Merci.
OriginalL'auteur Harrison | 2016-06-11
Vous devez vous connecter pour publier un commentaire.
Vous essayez d'utiliser
orderBy()
méthode sur Éloquent de la collection. Essayez d'utilisersortByDesc()
à la place.Alternativement, vous pouvez modifier
$products = Product::all();
à$products = new Product();
. Alors tout votre code fonctionne comme prévu.Eloquent model
(c'est à direProduct
) à$products
, plutôt que d'obtenir une collection qui contient tous les reocrds?Assurez-vous. Vous pouvez modifier
$products = Product::all();
à$products = new Product();
OriginalL'auteur Alexey Mezenin
suffit d'utiliser la ligne de code, il va bien fonctionner
OriginalL'auteur gaurav
Vous êtes le premier à m'
all()
de données, puis en essayant de trier ce qui est faux. Vous devez résoudre ce problème en supprimantet l'évolution de votre code en quelque chose comme ceci
Espère que vous obtenez idée de modifier votre code.
orderBy
,skip
, etc deux foisOriginalL'auteur KuKeC
Votre requête est erronée.
tout supprimer à partir
$products = Product::all()
et puis mettreget()
à la fin de votre requête.OriginalL'auteur Himanshu Raval
Vous pouvez utiliser cette...
OriginalL'auteur Viral M