Php 方法orderBy在Laravel Eloquent中不存在?
我有一段代码如下:Php 方法orderBy在Laravel Eloquent中不存在?,php,laravel,eloquent,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(); 我得到了以
$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
需要直接遵循产品:
,但我无法保存$products=Product:
,可以吗
有什么建议吗?谢谢。您正在尝试对雄辩的收藏使用
orderBy()
方法。试着用它来代替
或者,您可以更改
$products=Product::all()
至$products=新产品()代码>。然后,您的所有代码都将按预期工作。首先获取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()
放在查询的末尾。只需使用单行代码即可
$product= Product::orderBy('created_at','desc')->get();
您可以使用此…如果要获取所有数据的列表并按降序获取,请尝试以下操作:
$post = Post::orderBy('id', 'DESC')->get();
使用或简单内部使用变量,通过该变量进行排序,就像我添加id一样是否可以将雄辩的模型
(即产品
)分配给$products
,而不是获取包含所有ReoCRD的集合?当然。您可以更改$products=Product::all()
至$products=新产品()代码>这是我目前的工作……但我尽量避免做两次orderBy
,skip
,等等
$post = Post::orderBy('id', 'DESC')->get();