laravel-8 - Laravel 8中的多列orderBy
问题描述
我有一个电子商务网站,我想先按库存对产品页面中的产品进行排序,所以我这样做了,它工作得很好:
$products = Product::orderByDesc('quantity')->get();
现在,我在产品表中添加了一个新列 product_order ,它将采用一个整数,以便我可以自定义对产品进行排序,我尝试了以下代码:
$products = Product::orderByDesc('quantity')->orderByDesc('product_order')->get();
问题是它只按数量排序,第二个orderByDesc无效,我怎样才能使它有效?
解决方案
我设法通过执行以下操作解决了这个问题:
$productsQty = Product::orderByDesc('product_order');
$products = $productsQty->orderByDesc('quantity')->get();
foreach ($products as $product) {
if($product->quantity <= 0) {
$product->product_order = 0;
$product->save();
}
}
推荐阅读
- python - 在多处理 apply_async 中维护实例状态
- python - 带有两个分组的熊猫数据框平均值:一个按月,另一个按参数
- python - 皮林特误报“
: QApplication 类型的包装 C/C++ 对象已被删除” - c++ - 如何正确地将整数的实际参数发送到 main() 以计算 C++ 中的总和?
- c# - 如何将 SQLite 表数据获取到 ArrayList
- xml - xslt 1.0 xml在2个节点之间合并
- r - 如何用两条线在 r 中绘制绘图
- phoenix-framework - Elixir:具有多个地图匹配选项的模式匹配
- mysql - 查询提取数据库中最古老的 50 首歌曲与独特艺术家的意外结果
- java - 如何将 Array (ResultSet JDBC) 转换为 List?