У меня есть 5 таблиц в моем проекте laravel / vue:
- Фильмы
- Сериалы
- Аниме
- Актеры
- Отношения актеров
Таблица актеров относится к фильмам, сериалам, аниме, и это отношение многих ко многим зарегистрировано в actors_relationship
.
Я могу создать отношение «многие ко многим» в модели Actor.php
, используя следующий код:
public function movies() {
return $this->belongsToMany(MovieModel::class, "actors_relationship", 'actor_id', 'media_id')->wherePivot("media_type", AdminHelper::TYPE_MOVIES['value'])->withTimestamps();
}
Используя этот код, я получаю записи свключил в себя идентификатор актера и имеет специальный int как media_type
.
До этого момента у меня не было проблем.Моя проблема заключается в подсчете всех этих отношений.например, получение количества фильмов, сериалов, аниме и их сортировка. desc / asc
Решения:
Получение количества актеров отношений из фильмов, сериал, аниме и зарегистрируй его в кастоме attribute
.Сортировка будет на стороне клиента.
Выполнение жесткого кода на стороне сервера для сортировки, затем проверка, выполняется ли сортировка по total_count
, если да, то сначала получить коллекцию, а затем ->get()
команда, попробуйте выполнить сортировку по пользовательскому attribute
.
Я хотел бы следовать рекомендациям по этому вопросу.Есть ли способ подсчитать все отношения и отсортировать по ним?
Решение на стороне клиента потребовало бы больше работы, потому что этот проект будет предназначен для Android и Web и, следовательно, потребует различных модификаций в обоих полях.
Кроме того, я обычно делал бы ->with('movies')
изатем отсортируйте автоматически созданное поле movies_count
.Я хотел бы иметь подобный подход.
Таблицы:
actors
:
id actor_title
movies
:
id movie_title
series
:
id series_title
anime
:
id anime_title
actors_relationship
:
id actor_id media_id media_type
РЕДАКТИРОВАТЬ:
Я ищу лучшееСоветы по реализации общего подсчета movies
, series
и anime
.Это означает, что я хотел бы общее количество этих 3 отношений в одной области.Я мог бы использовать пользовательский атрибут, но тогда мне нужно будет отсортировать его, используя PHP / клиентскую сторону вместо того, чтобы делать это в запросе SQL в Eloquent.
Это означает, что я ищу лучший путь, который следует лучшим практикам.total_count
подведет итоги вышеупомянутых отношений.Я хотел бы отсортировать по этому новому total_count
.