【问题标题】:Laravel eloquent query where-likeLaravel 雄辩的查询 where-like
【发布时间】:2021-09-29 03:36:11
【问题描述】:

我尝试了一个搜索栏,我想在其中输入 3000 之类的价格,我想显示 3000-3999 的价格范围以及其他价格,1000-1999、2000-2999 等...

我有这个代码,它只显示我输入的确切价格

->orWhere('price', 'LIKE', '%'.$request->search.'%');

我该怎么做?

【问题讨论】:

  • 试试orWhereBetween('price',$request->search,$request->search+999);

标签: laravel eloquent eloquent-relationship


【解决方案1】:

以上答案都没有解决我的问题,但我设法像这样解决了它

->when(is_numeric($request->search), function ($query) {
    $query->orWhereBetween('price', [$request->search, $request->search + 999]);
})

【讨论】:

    【解决方案2】:

    LIKE 子句查找特定模式,通常对搜索字符串很有用。您最好使用 COMPARISON 或 LOGICAL 运算符来查找每个范围之间的价格。

    $lowerLimit = (int)$request->search;
    $higherLimit = $lowerLimit + 999;
    
    $query->whereLike('name','LIKE','$%'.$request->name.'%')
    
          .... Additional Conditions
    
          ->orWhereBetween('price',[$lowerLimit, $higherLimit]);
    

    【讨论】:

      【解决方案3】:

      如果你的请求总是有类似的东西

      1000 2000 3000 ...

      你可以这样做

      ->whereBetween('price', [(int)$request->search, (int)$request->search+999])
      

      【讨论】:

        【解决方案4】:
        ->whereBetween('price', [$request->search, $request->search + 999])
        

        【讨论】:

        • 请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常更有帮助,质量更高,更有可能吸引投票。
        猜你喜欢
        • 2019-01-28
        • 2020-01-11
        • 2021-02-13
        • 1970-01-01
        • 2018-01-26
        • 2021-07-23
        • 2017-11-11
        • 2023-04-05
        相关资源
        最近更新 更多