Поиск в Laravel после нетерпеливой загрузки записей?

у меня есть flights таблица, которая имеет два столбца внешнего ключа: источник и пункт назначения, оба они связаны с airports Таблица. Теперь я могу загрузить записи нормально:

Flight::with('origin', 'destination')->get();

Но сейчас я хочу сделать что-то вроде:

Flight::with('origin', 'destination')->where('origin.name', 'LIKE', "$query%")->get();

Но это дает мне ошибку, говоря, что нет столбца с именем origin.name что имеет смысл для меня, но как мне искать записи в загруженных данных?

1

Решение

whereHas должно сработать:

Flight::with('origin', 'destination')->whereHas('origin', function($q) use ($query){
$q->where('name', 'LIKE', "$query%");
})->get();
1

Другие решения

вам нужно закрытие, чтобы сделать это правильно. Вот простой пример.

$places = Flight::with(array('origin' => function($query) use($query_name)
{
$query->where('name', 'LIKE', "$query_name%");
}))->get();

Надеюсь это поможет.

0

По вопросам рекламы [email protected]