@amorphine

Eloquent Many to Many — как найти записи, которые связаны только с определенными другими записями?

Упрощенный вид: Модель и свойства
Route
id

City 
id
name

RouteCityPivot
id
city_id
route_id


Один Route имеет только 2 City (отношение many to many через pivot-таблицу).
Имея названия двух городов - например Berlin и Munich - как можно найти содержащий эти два города Route?

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


Этот код найдет все Route, которые содержат хотя бы один из городов, а необходимо найти именно тот, где есть эта пара.
  • Вопрос задан
  • 151 просмотр
Решения вопроса 1
@amorphine Автор вопроса
$route = Route::whereHas('cities', function ($q) use ($cities){
	    	$q->whereIn('name', $cities);
	    }, '=', count($cities))->get();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы