在 Mongo Laravel 中按价格排序

Posted

技术标签:

【中文标题】在 Mongo Laravel 中按价格排序【英文标题】:Sorting by price in Mongo Laravel 【发布时间】:2021-11-12 06:39:33 【问题描述】:

尝试根据价格对资产进行排序。

blade.php

<form action="/assets/search/" method="GET" class="form-inline">
@csrf
    <div class="searchByPrice pt-3">
       <p class="font-weight-bold">Search By Price</p>
       <label for="price">Volume</label>
       <input type="range" min="0" max="500000" id="price" step="100" name="price"
        oninput="outputUpdate(value)">
       <output for="price" id="volume">250000</output>
       <script>
           function outputUpdate(vol) 
               document.querySelector('#volume').value = vol;
           
       </script>
     </div>
</form>

控制器

public function show(Request $request, $_id)
    
        $query = Asset::query();
        if ($p = $request->price) 
            $query->where('price', '<', $p);
        
        $assets =  $query->get();
        return view('assets::assets',compact('assets'));
    

dd();

DD($request->price);

我没有得到想要的结果。任何解决方案?或者在 Laravel mongo 中有没有其他按价格排序的解决方案?

【问题讨论】:

dd($request->price)的值是多少; 它的值来自范围 可能是因为我在输出中得到了一个字符串?如果是,那么如何转换? 我想看看值是什么,“它的值来自范围”,我不知道它是如何格式化的。 我最后附上了一张有问题的截图 【参考方案1】:

我做错的是我需要在 if() 语句中返回查询。像这样

public function show(Request $request, $_id)
    
        $query = Asset::query();
        if ($p = $request->price) 
           $query->where('price', '<', $p);
           $assets =  $query->get();
           return view('assets::assets',compact('assets'));
          
    

【讨论】:

以上是关于在 Mongo Laravel 中按价格排序的主要内容,如果未能解决你的问题,请参考以下文章

在laravel中按字母顺序排序集合

如何在 Laravel 中按日期排序消息

如何在 Laravel 5.1 中按多列对 Illuminate Collection 进行排序?

谁能建议如何在android Recycler View中按产品价格实现排序[关闭]

在 Laravel 5 中按行排序并限制结果

如何在 Laravel 的嵌套 2 级关系中按列排序?