我正在尝试获取所有具有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
吗? 最佳答案
您应该使用:
$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();
关于php - 无法正常工作的地方,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26408370/