Php 如何在laravel中执行两个where条件,其中订单id相同,但产品id在数组中
所以我订了一张桌子 我有订单id和多个产品id,现在我想根据订单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',
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();
谢谢你,成功了。不幸的是,我不能将两个答案都标记为正确,但仍然非常感谢您的帮助。