webentwicklung-frage-antwort-db.com.de

Methode orderBy existiert nicht in Laravel Eloquent?

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.

12
Harrison

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.

22
Alexey Mezenin

verwenden Sie einfach den einzeiligen Code, der gut funktioniert

$product= Product::orderBy('created_at','desc')->get();
15
gaurav

Wenn Sie die Liste aller Daten abrufen und in absteigender Reihenfolge abrufen möchten, versuchen Sie Folgendes:

$post = Post::orderBy('id', 'DESC')->get();
1
Pushpendra Pal

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.

0
KuKeC

Ihre Frage ist falsch.

entfernen Sie alles aus $products = Product::all() und setzen Sie get() am Ende Ihrer Abfrage.

0
Himanshu Raval
$table_Data = DB::table('tbl_product')->orderBy('id','DESC');

Sie können dies verwenden ...

0
Viral M

benutze sortByDesc ('id') oder simple sortBy () inside benutze die Variable, durch die du sortieren willst, wie ich id hinzufüge

0
Bilawal Awan