2017-12-05 13 views
0

テーブル顧客、製品、customer_productsがあります。 ,customer_idおよびproduct_idの列には、customer_productsがあります。 検索フォームに「products」という入力フィールドがあり、複数の商品を検索用に追加することができます。 その場合、$request->productsは配列で、少なくとも配列の$request->productsからすべての製品を購入したすべての顧客を返すように、その配列をクエリビルダーに渡したいと思います。 各顧客が1つの製品しか持たない場合は、whereInメソッドを使用しますが、顧客が複数の製品を注文した場合、その解決方法はわかりません。 私はforeachで試しましたが、私は望む結果を得ていませんでした。Laravel - ピボットテーブルを使用してクエリビルダを返します。

答えて

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(); 
関連する問題