у меня есть flights
таблица, которая имеет два столбца внешнего ключа: источник и пункт назначения, оба они связаны с airports
Таблица. Теперь я могу загрузить записи нормально:
Flight::with('origin', 'destination')->get();
Но сейчас я хочу сделать что-то вроде:
Flight::with('origin', 'destination')->where('origin.name', 'LIKE', "$query%")->get();
Но это дает мне ошибку, говоря, что нет столбца с именем origin.name
что имеет смысл для меня, но как мне искать записи в загруженных данных?
whereHas
должно сработать:
Flight::with('origin', 'destination')->whereHas('origin', function($q) use ($query){
$q->where('name', 'LIKE', "$query%");
})->get();
вам нужно закрытие, чтобы сделать это правильно. Вот простой пример.
$places = Flight::with(array('origin' => function($query) use($query_name)
{
$query->where('name', 'LIKE', "$query_name%");
}))->get();
Надеюсь это поможет.