Laravel Eloquent 中不存在 orderBy 方法?

新手上路,请多包涵

我有一段这样的代码:

 $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:: ,可以吗?

有什么建议么?谢谢。

原文由 Harrison 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 464
2 个回答

您正在尝试在 Eloquent 集合上使用 orderBy() 方法。尝试使用 sortByDesc() 代替。

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

原文由 Alexey Mezenin 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题