我有桌面客户,产品和customer_products
。
在customer_products
中,有id
,customer_id
和product_id
列。
在搜索表单中,我有' products
'输入字段,可以添加多个产品进行搜索。
因此,在这种情况下$request->products
是数组,我想在查询构建器中传递该数组,以返回从$request->products
数组中购买至少所有产品的所有客户。
如果每个客户只有一个产品,我会使用whereIn方法,但是当客户订购了多个产品时,我不知道如何解决这个问题。
我试过foreach但是我没有得到想要的结果。
答案 0 :(得分:0)
我终于找到了解决方案。如果有人有同样的问题,这就是给我正确结果的解决方案,其中有方法是我需要的:
$customesrs = Customers::with('products');
if($request->has('products'))
{
foreach($request->products as $product)
{
$customers->whereHas('products', function($query) use ($product) {
$query->where('product_id', $product);
});
}
}
$customers->get();