#php #laravel
#php #laravel
Вопрос:
Используя Laravel, я создаю веб-приложение для архивирования фильмов и сериалов. Я застрял в области категорий, и мне нужна ваша помощь. Позвольте мне рассказать вам, где я тусуюсь. В области фильмов фильм может относиться к нескольким категориям. Я хочу показать фильмы, которые находятся в этой категории, на моей странице фильмов в виде списка. Я понятия не имею, как это сделать.Прошу прощения за мой плохой английский.
Ответ №1:
вам нужно создать три таблицы, первая из которых
movies
с такими столбцами, как этот
id,movie_name,movie_director,movice_info ..ect
столбец id должен быть primary int not null auto increment
вторая таблица будет
categorys
с такими столбцами, как этот
id,category_name,category_parent_id
теперь id — это первичный ключ, а category_name — это имя, но category_parent_id — это большинство категорий, вложенных в дерево, поэтому это будет идентификатор той же таблицы, и он будет обнуляемым
ваша таблица категорий будет выглядеть следующим образом
id category_name category_id
1 comedies movies null
2 actions comedies movies 1
3 drama comedies movies 1
4 dramas movies null
5 sad drama movies 4
помните, что вы будете размещать фильмы не внутри родительских категорий, а внутри дочерних категорий, в которых столбец category_id не равен нулю
или вы можете создать таблицу с именем anther category_ids
и установить отношение anther
и теперь третья таблица называется
movie_categorys
в нем будут эти столбцы
id,movie_category_movie_id,movie_category_category_id
допустим, у вас есть три фильма
с этими данными
id movie name ect data
1 first move ect..
2 second movie ect ..
и эта категория
id category_name category_id
1 comedies movies null
2 actions comedies movies 1
3 drama comedies movies 1
4 dramas movies null
5 sad drama movies 4
и вы хотите, чтобы первый фильм был внутри категории actions comedies movies
и category sad drama movies
вы будете помещать данные внутрь movie_categorys
следующим образом
id movie_category_movie_id movie_category_category_id
number 1 2
number 1 5
и вы хотите поместить второй фильм с категориями drama comedies movies
и sad drama movies
и actions comedies movies
ваши данные будут выглядеть следующим образом
id movie_category_movie_id movie_category_category_id
number 2 2
number 2 3
number 2 5
вот как вы храните данные
теперь давайте поговорим об отношениях
внутри модели movie обычно ее следует вызывать следующим образом
Movie
вы должны написать это отношение
фильмы принадлежат ко многим категориям, а в категории много фильмов, я надеюсь, что это ответ на ваш вопрос
Ответ №2:
Это отношение «Многие ко многим». Вам нужно 3 таблицы:
movies
-id
category_movie
-movie_id
-category_id
categories
-id
В вашей модели фильма определите ответственность
public function categories()
{
return $this->belongsToMany(Category::class);
}