首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >雄辩的依领域而定

雄辩的依领域而定
EN

Stack Overflow用户
提问于 2022-04-18 06:23:28
回答 2查看 51关注 0票数 1

我有这样的疑问:

代码语言:javascript
复制
Product::withMin('promotions as promotion_price', 'promotion_products.price')
        ->get();

我想对结果进行排序,但我有问题。如果withMin的结果为null,我想按另一个字段对其进行排序(让我们说'product.sale_price')。或者,如果promotion_price为null,那么如何创建一个新的字段,比如‘sale_price’,使用sale_price。

我已经尝试过的是:

在get()之后添加以下内容

代码语言:javascript
复制
        ->sortByDesc(function ($product){
            if($product->promotion_price === null)
            {
                return $product->sale_price;
            }
            else
            {
                return $product->promotion_price;
            }
        }

结果仍未排序

代码语言:javascript
复制
{
  "0": {
    "id": 2,
    "title": "Test Product",
    "sale_price": 990000,
    "promotion_price": 50000
  },
  "1": {
    "id": 3,
    "title": "Test Paimon s",
    "sale_price": 99999,
    "promotion_price": 50000
  },
  "2": {
    "id": 4,
    "title": "Asus Nvidia RTX 3090",
    "sale_price": 56500000,
    "promotion_price": 50000
  },
  "3": {
    "id": 5,
    "title": "Asus Nvidia RTX 3080",
    "sale_price": 42500000,
    "promotion_price": 10000
  },
  "4": {
    "id": 6,
    "title": "Gigabyte Nvidia RTX 3090",
    "sale_price": 53500000,
    "promotion_price": null
  },
  "5": {
    "id": 7,
    "title": "Gigabyte Nvidia RTX 3080",
    "sale_price": 40000000,
    "promotion_price": null
  },
  "6": {
    "id": 8,
    "title": "Zotac Nvidia RTX 3090",
    "sale_price": 49500000,
    "promotion_price": null
  }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-04-18 08:46:36

使用orderByRaw

代码语言:javascript
复制
 Product::withMin('promotions as promotion_price', 'promotion_products.price')
 ->orderByRaw("CASE WHEN promotion_price is null then sale_price else promotion_price end DESC" )
 ->get();
票数 0
EN

Stack Overflow用户

发布于 2022-04-18 06:48:41

你试着做地图了吗?

代码语言:javascript
复制
Product::all()->map(function(Product $product){
   $product->final_price = null; //you can use this concept
})->get();

O(n)复杂性

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71908264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档