Я пишу функцию поиска, которая в основном просматривает несколько таблиц.
Структура и отношения БД следующие:
`users`
id
name
user_type_id
`user_type`
id
type
`user_nicknames`
id
user_id
nickname
Модель пользователя имеет \Illuminate\Database\Eloquent\Relations\BelongsTo
отношение с user_type
и отношение \Illuminate\Database\Eloquent\Relations\HasMany
к user_nicknames
Я пытаюсь найти поиск по определенному критерию поиска, который можно найти либо в таблице users
, либо в user_nicknames
В данный момент происходит сбой:
$user = $this->user->newQuery();
$user->whereHas('userType', function ($query) use ($filters) {
$query->where('type', $filters['type']);
});
$user->whereHas('userNickName', function ($query) use ($searchTerm) {
$query->where('custom_title', 'like', '%'.$nickname.'%');
});
Обратите внимание, что я предпочел бы использовать красноречивые связи для этого, а не для нескольких объединений.
Любойидеи?