Как найти коллекцию по записи, относящейся к первой коллекции - PullRequest
0 голосов
/ 04 июня 2019

Мне нужно найти группу коллекций, ГДЕ поиск основан на записи по связанной модели.Чтобы вы поняли, мне нужно, чтобы пользователи с названием компании, КАК мне нравились мои данные для поиска.

Вот что я пробовал:

$users = App\User::with(['company' => function ($query) {
    $query->where('company_name', 'like', '%'.$searchInput.'%');
}])->paginate(10);

Если честно, я потратил на это часыно без удачи.Я использую jenseggers/mongodb на Laravel 5.8.

1 Ответ

1 голос
/ 04 июня 2019

Вы должны добавить ::whereHas() к вашему запросу, что ограничит результаты запроса, где company похоже на поисковый запрос.

Также вам нужно изменить ::with() замыкание на ::with('companies').

$users = App\User::whereHas('company', function ($query) use ($searchInput) {
    $query->where('company_name', 'like', '%'.$searchInput.'%');
})
->with('company')
->paginate(10);

Обратите внимание на use ($searchInput).

Также проверьте, является ли отношение пользователя companies вместо company.

...