哪里没有按预期工作

时间:2014-10-16 15:34:14

标签: php mysql laravel orm

我正在尝试获取Shop之一的所有$item_ids = array('1', '17');

但是,下面的代码并没有像我预期的那样 - 它只是把我所有的商店交给我。

$shops = Shop::whereHas('items', function($query) use ($item_ids) {

                    $query->where('items.id', '=', $item_ids[0]);

                    foreach(array_slice($item_ids, 1) as $item_id) {
                        $query->orWhere('items.id', '=', $item_id);
                    }
                })
                ->get(array('shops.id', 'shops.shop_name', 'shops.lat', 'shops.lng'));

我是否仅使用指定的Shop之一获取Item

1 个答案:

答案 0 :(得分:1)

你应该使用:

$shops = Shop::whereHas('items', function($query) use ($item_ids) {    
     $query->whereIn('id', $items_ids);
})->get();

$shops = Shop::whereHas('items', function($query) use ($item_ids) {    
     $query->whereIn('id', $items_ids);
})->select('shops.id', 'shops.shop_name', 'shops.lat', 'shops.lng')->get();