方法orderBy在Laravel Eloquent中不存在?

Har*_*son 16 php laravel eloquent

我有一段这样的代码:

$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();
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

BadMethodCallException in Macroable.php line 81:
Method orderBy does not exist.
Run Code Online (Sandbox Code Playgroud)

我想orderBy需要Product::直接关注,但我无法保存$products = Product::,可以吗?

有什么建议?谢谢.

Ale*_*nin 26

你正试图orderBy()在Eloquent集合上使用方法.尽量使用sortByDesc().

或者,您可以更改$products = Product::all();$products = new Product();.然后您的所有代码都将按预期工作.


gau*_*rav 16

只需使用一行代码即可正常工作

$product= Product::orderBy('created_at','desc')->get();
Run Code Online (Sandbox Code Playgroud)