Php 如何在laravel中执行两个where条件,其中订单id相同,但产品id在数组中

Php 如何在laravel中执行两个where条件,其中订单id相同,但产品id在数组中,php,laravel,laravel-5,Php,Laravel,Laravel 5,所以我订了一张桌子 我有订单id和多个产品id,现在我想根据订单id和产品id获取结果 比如说 orders_id =10 , products_ids = array(15,20,21,23) $result = array(); foreach (products_ids as $value) { $result=DB::table('ordered_products')->where('orders__id','=',10)->where('products_id',

所以我订了一张桌子

我有订单id和多个产品id,现在我想根据订单id和产品id获取结果 比如说

orders_id =10 , products_ids = array(15,20,21,23)

$result = array();

 foreach (products_ids as $value) {
  $result=DB::table('ordered_products')->where('orders__id','=',10)->where('products_id','=',$value)->get();
  }
我执行了查询,但只得到一行。
请帮助我执行查询。

目前,您正在为每个产品运行一个查询,并且每次都覆盖$result。您可以使用
避免foreach循环并获得所有结果,其中

$orders_id =10;
$products_ids = array(15,20,21,23)

$result=DB::table('ordered_products')
   ->where('orders__id','=',10)
   ->whereIn('products_id',$products_ids)
   ->get();

您应该使用
where
作为订单id,使用
where
作为产品id

$result = DB::table('ordered_products')
            ->where('orders__id',10)
            ->whereIn('products_id', $products_ids)
            ->get();

谢谢你,成功了。不幸的是,我不能将两个答案都标记为正确,但仍然非常感谢您的帮助。