【问题标题】:How to perform in laravel multiple where with or query如何在 laravel 中执行多个 where with or query
【发布时间】:2017-03-21 09:39:21
【问题描述】:
Product::where('name', 'like', 'something%')->orWhere('category', 'like', 'something%')->orWhere('price', 'like', 'something%')->orWhere('qty', 'like', 'something%')...

我可以用更优雅、更紧凑的方式来做吗?

【问题讨论】:

    标签: php database laravel eloquent


    【解决方案1】:

    你可以这样做。将数组传递给单个 orWhere 子句

    Product::where('name', 'like', 'something%')->orWhere(['category', 'like', 'something%'], ['price', 'like', 'something%'],['qty', 'like', 'something%'])...

    【讨论】:

      【解决方案2】:

      你可以使用searchable,看看herehere还有here

      【讨论】:

        【解决方案3】:

        您可以使用'array_map()'orWhere() 构建一个数组:

        $search = 'something';
        Product::orWhere(array_map(
            function ($i) use($search) { return [$i, 'like', $search.'%']; },
            ['name', 'category', 'price', 'qty']
        ))->get();
        

        如果您有许多要搜索的字段,这是一个好方法。对于 3-4 个字段,我只使用简单的 orWhere() 链接,因为它更容易阅读代码

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-11-06
          • 2013-06-04
          • 1970-01-01
          • 2021-07-12
          • 2019-12-05
          相关资源
          最近更新 更多