我有一段这样的代码:
$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();
我收到以下错误:
BadMethodCallException in Macroable.php line 81:
Method orderBy does not exist.
我想orderBy
需要直接跟着Product::
,但我救不了$products = Product::
,对吧?
有什么建议吗?谢谢。
您正在尝试在 Eloquent 集合上使用orderBy()
方法。尝试改用sortByDesc()
。
或者,您可以将$products = Product::all();
更改为 $products = new Product();
。然后,您的所有代码都将按预期工作。
只需使用一行代码即可正常工作
$product= Product::orderBy('created_at','desc')->get();
sortByDesc('id') 或简单的 sortBy() 里面使用你想要排序的变量,就像我添加 id
如果您想获取所有数据的列表并按降序抓取它,请尝试以下操作:
$post = Post::orderBy('id', 'DESC')->get();
您首先获取all()
数据,然后尝试对错误的数据进行排序。您必须通过删除来解决此问题
$products = Product::all()
并将您的代码更改为类似这样的东西
if ($search_value) {
$products = Product::where('name', 'LIKE', "%$search_value%");
}
else {
$products = Product::orderBy('created_at', 'desc')->skip(10)->take(10)->with('tags')->get();
}
希望您有调整代码的想法。
您的查询是错误的。
从$products = Product::all()
中删除所有内容,然后将get()
放在查询的末尾。
$table_Data = DB::table('tbl_product')->orderBy('id','DESC');
你可以使用这个...