Ich habe einen Code wie diesen:
$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();
Ich habe folgenden Fehler erhalten:
BadMethodCallException in Macroable.php line 81:
Method orderBy does not exist.
Ich denke, orderBy
muss Product::
direkt folgen, aber ich kann $products = Product::
nicht speichern, kann ich?
Irgendwelche Vorschläge? Vielen Dank.
Sie versuchen, die orderBy()
-Methode für die Eloquent-Sammlung zu verwenden. Verwenden Sie stattdessen sortByDesc()
.
Alternativ können Sie $products = Product::all();
in $products = new Product();
ändern. Dann funktioniert der gesamte Code wie erwartet.
verwenden Sie einfach den einzeiligen Code, der gut funktioniert
$product= Product::orderBy('created_at','desc')->get();
Wenn Sie die Liste aller Daten abrufen und in absteigender Reihenfolge abrufen möchten, versuchen Sie Folgendes:
$post = Post::orderBy('id', 'DESC')->get();
Sie erhalten zuerst all()
-Daten und versuchen dann, die falschen zu sortieren. Sie müssen dies durch Entfernen beheben
$products = Product::all()
und ändern Sie Ihren Code in so etwas
if ($search_value) {
$products = Product::where('name', 'LIKE', "%$search_value%");
}
else {
$products = Product::orderBy('created_at', 'desc')->skip(10)->take(10)->with('tags')->get();
}
Ich hoffe, Sie bekommen die Idee, Ihren Code zu optimieren.
Ihre Frage ist falsch.
entfernen Sie alles aus $products = Product::all()
und setzen Sie get()
am Ende Ihrer Abfrage.
$table_Data = DB::table('tbl_product')->orderBy('id','DESC');
Sie können dies verwenden ...
benutze sortByDesc ('id') oder simple sortBy () inside benutze die Variable, durch die du sortieren willst, wie ich id hinzufüge