Найдите предложения, основанные на интересах, используя Laravel и Eloquent

Я создаю небольшой сайт, где пользователи могут получать рекомендации по фильмам на основе своих предпочтений по некоторым атрибутам, таким как жанр, год или время работы. Моя база данных выглядит следующим образом (стрелки показывают отношения «многие ко многим»):

введите описание изображения здесь

Предполагая, что у меня есть модель для каждой сущности на картинке, как мне найти, какие фильмы я бы порекомендовал пользователю?

0

Решение

То, что вы ищете, может быть достигнуто с помощью whereHas:

Movies::whereHas('genres.users', function($q) use ($userId){
$q->where('users.id', $userId);
})->whereHas('years.users', function($q) use ($userId){
$q->where('users.id', $userId);
})->whereHas('runtimes.users', function($q) use ($userId){
$q->where('users.id', $userId);
})->get();

Это в основном фильтрует фильмы по вложенным отношениям users (над тремя другими отношениями)

1

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

Других решений пока нет …

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