【问题标题】:How can I show the latest/last product products that has been added DB from my controller如何显示已从我的控制器添加数据库的最新/最新产品产品
【发布时间】:2021-11-09 20:47:17
【问题描述】:

我正在创建一个电子商务商店,我想显示使用我的产品控制器从数据库中添加的最新记录。 laravel的专家可以帮忙吗?我不知道该怎么做。

这是来自我的控制器的代码,用于在着陆页上显示产品

public function index()
  {
  return view('/welcome')->with([
  'products' => $this->getProducts(4),
]);
}

public function getProducts(int $limit) {
return Product::orderByDesc('created_at')->skip(0)->take($limit)->get();
}

在实施推荐的此更新并关闭“created_at”字符串后,我收到错误“为 foreach() 提供的参数无效”。无论如何我可以摆脱这个错误吗?

【问题讨论】:

标签: php mysql laravel twitter-bootstrap


【解决方案1】:

如果您的产品表有一些日期时间列,那么您必须按该列排序,因为您想显示最新结果。 所以你可以像下面这样修改你的查询

Product::orderByDesc('created_at)->offset(0)->limit($limit)->get();

或者你可以使用另一种skip and take方法

Product::orderByDesc('created_at)->skip(0)->take($limit)->get();

如果您没有日期时间列(在这种情况下为 created_at)并且您的 Product 模型具有自动递增的 id 列,那么您可以这样做

Product::orderBy('id', 'desc')->skip(0)->take($limit)->get();

更多信息请阅读this

【讨论】:

  • 旁注,skip(0) 和/或offset(0) 在这里是可选的;他们是暗示?但除此之外,很好的答案!
  • 所以它应该像'public function getProducts(int $limit) { Product::orderByDesc('created_at')->offset(0)->limit($limit)->get() ; }'?因为当我添加那行时,它给了我一个错误。对不起,我在使用 laravel 方面还很新
  • @Ben 不要说“我做 X 时出错了”,你为什么不 edit your question 并包含你的新代码以及由此产生的任何新错误。单独说“它给了我一个错误”是没有用的。
  • @Mosharaf。有效。非常感谢。
猜你喜欢
  • 2015-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-10
相关资源
最近更新 更多