Eloquent / October'多对多'关系 - 如何通过相关数据进行搜索?

时间:2017-12-13 14:34:02

标签: eloquent octobercms

以下是模型的简化视图和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个给定城市的路线?谢谢!

1 个答案:

答案 0 :(得分:1)

根据the same issue

解决方案是

 $route = Route::whereHas('cities', function ($q) use ($cities){
            $q->whereIn('name', $cities);
        }, '=', count($cities))->get();