Laravel如何在多个条件下编写搜索查询,但是记录在同一用户下

博丹拜达

我有一个包含库存产品的数据库。另外,我有很多用户,产品属于不同的用户。因此,我需要编写一个具有多个条件的查询,其中搜索需要在不同的表列中,因此它将是几个->orWhere()语句。但是搜索需要找到属于同一用户的所有产品。但是,如果我有很多->orWhere()条件,查询就会开始在其他查询条件匹配的其他用户(“标题”或“ product_number”)下搜索产品。

那么,如何更改我的代码,在哪里可以得到所有带有搜索关键字的产品,而在同一用户下的产品呢?

这是我的代码:

public function searchProduct(Request $search){
    $search_item = $search->search;
    $user = User::where('id', Auth::user()->id)->first();
    $inventory = Inventory::where('client_id', $user->client_id)
                            ->where('product_number', 'like', "%{$search_item}%")
                            ->orWhere('title', 'like', "%{$search_item}%")
                            ->orWhere('other_product_numbers', 'like', "%{$search_item}%")
                            ->with(['deliveryRecord', 'orderInRecord', 'sellRecord'])
                            ->paginate(50);

    $cleint_currency = SettingsClientCurrency::where('client_id', $user->client_id)->first();

    $inventory_products = Inventory::where('client_id', $user->client_id)->with('orderInRecord')->get();
    $inventory_total = 0;
    foreach ($inventory_products as $product) {
        $ordersin = $product->orderInRecord;
        foreach ($ordersin as $orderin) {
            $inventory_total += $orderin['price'] * $orderin['units'];

        }
    }

    return view('layouts.inventory.inventory')
            ->with('inventory', $inventory)
            ->with('inventory_total', $inventory_total)
            ->with('cleint_currency', $cleint_currency)
            ->with('user', $user);
}
扎希德·哈桑emon

您可以在第二个where子句中使用两个where子句和一个回调函数。会得到您想要的结果

$inventory = Inventory::where('client_id', $user->client_id)
                       ->where(function ($query) use ($search_item) {
                           $query->where('product_number', 'like', "%{$search_item}%")
                                 ->orWhere('title', 'like', "%{$search_item}%")
                                 ->orWhere('other_product_numbers', 'like', "%{$search_item}%");
                       })
                       ->with(['deliveryRecord', 'orderInRecord', 'sellRecord'])
                       ->paginate(50);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在多个条件下编写此SQL JOIN查询

来自分类Dev

在多个条件下查询弹性搜索

来自分类Dev

如何编写访问查询以查找同一用户标识中的时间间隔

来自分类Dev

如何在三个不同的条件下查询同一列三遍?

来自分类Dev

SQL查询如何在不同条件下将同一表中两列的值相除

来自分类Dev

如何在Firebase上处理同一用户的多个连接?

来自分类Dev

如何在gitolite中为同一用户名添加多个发布文件?

来自分类Dev

SignInAnonymouslyAsync()返回同一用户的条件

来自分类Dev

如何在laravel 5中在多个条件的地方编写查询

来自分类Dev

如何在一行中编写两个要在 if 条件下执行的语句?

来自分类Dev

如何在条件下编写此伪代码

来自分类Dev

如何在搜索查询中编写条件?

来自分类Dev

如何在多个OR条件下比较用户输入PYTHON 3.x

来自分类Dev

如何在另一个查询的LIKE条件下使用SQL查询结果?

来自分类Dev

如何在不同条件下选择同一列

来自分类Dev

如何在其他条件下添加同一列?

来自分类Dev

如何在 xmpp 多个客户端同一用户上显示其他客户端发送的消息

来自分类Dev

访问SQL条件子句的多个条件/记录在同一列

来自分类Dev

如何在布尔条件下搜索大数据-MySQL

来自分类Dev

如何防止同一用户在MySQL中更新自己的记录?

来自分类Dev

如何为同一用户的不同会话设置单独的命令历史记录?

来自分类Dev

如何在多个条件下分支/切换?

来自分类Dev

如何在多个条件下以python排序?

来自分类Dev

如何在多个条件下使用db_delete?

来自分类Dev

如何在多个条件下的熊猫中使用loc?

来自分类Dev

如何在多个条件下使用np.where

来自分类Dev

如何在多个条件下对python进行排序?

来自分类Dev

如何在多个条件下使用“ if”命令?

来自分类Dev

如何在多个条件下进行适当的for循环?

Related 相关文章

  1. 1

    如何在多个条件下编写此SQL JOIN查询

  2. 2

    在多个条件下查询弹性搜索

  3. 3

    如何编写访问查询以查找同一用户标识中的时间间隔

  4. 4

    如何在三个不同的条件下查询同一列三遍?

  5. 5

    SQL查询如何在不同条件下将同一表中两列的值相除

  6. 6

    如何在Firebase上处理同一用户的多个连接?

  7. 7

    如何在gitolite中为同一用户名添加多个发布文件?

  8. 8

    SignInAnonymouslyAsync()返回同一用户的条件

  9. 9

    如何在laravel 5中在多个条件的地方编写查询

  10. 10

    如何在一行中编写两个要在 if 条件下执行的语句?

  11. 11

    如何在条件下编写此伪代码

  12. 12

    如何在搜索查询中编写条件?

  13. 13

    如何在多个OR条件下比较用户输入PYTHON 3.x

  14. 14

    如何在另一个查询的LIKE条件下使用SQL查询结果?

  15. 15

    如何在不同条件下选择同一列

  16. 16

    如何在其他条件下添加同一列?

  17. 17

    如何在 xmpp 多个客户端同一用户上显示其他客户端发送的消息

  18. 18

    访问SQL条件子句的多个条件/记录在同一列

  19. 19

    如何在布尔条件下搜索大数据-MySQL

  20. 20

    如何防止同一用户在MySQL中更新自己的记录?

  21. 21

    如何为同一用户的不同会话设置单独的命令历史记录?

  22. 22

    如何在多个条件下分支/切换?

  23. 23

    如何在多个条件下以python排序?

  24. 24

    如何在多个条件下使用db_delete?

  25. 25

    如何在多个条件下的熊猫中使用loc?

  26. 26

    如何在多个条件下使用np.where

  27. 27

    如何在多个条件下对python进行排序?

  28. 28

    如何在多个条件下使用“ if”命令?

  29. 29

    如何在多个条件下进行适当的for循环?

热门标签

归档