以下是模型的简化视图和DB的相应列
Route
id
City
id
name
RouteCityPivot
id
city_id
route_id
一条路线只能有两个相关的城市。让我们说他们是柏林和慕尼黑。 如何通过城市名称找到路线?
此代码可以找到几条路线,其中至少有一个的城市:
$route = Route::whereHas('cities', function ($q) use ($from, $to){
q->whereIn('name', [$from, $to]);
})->get();
如何找到具有2个给定城市的路线?谢谢!
答案 0 :(得分:1)
解决方案是
$route = Route::whereHas('cities', function ($q) use ($cities){
$q->whereIn('name', $cities);
}, '=', count($cities))->get();