Отношения между 4 таблицами

У меня есть 4 таблицы событий, группы, категории, дзюдо. В мероприятии много групп, в группе много категорий, а в категории много дзюдоистов. Итак, как я могу это осознать? Я пытался создать сводные таблицы event_group, group_category, category_judoka, но когда я помещал дзюдоистов в категорию, они были во всех событиях, а не только в одном. У меня много отношений между всеми таблицами. Какие-либо предложения?

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

user1392902 12.05.2019 08:43

«В турнире много групп, в группе много категорий, а в категории много дзюдоистов». исходя из этого .. вам не нужна сводная таблица. почему это много ко многим ситуации?

ZeroOne 12.05.2019 08:46

Потому что я могу создать много мероприятий, где могут быть одни и те же группы, но разные дзюдоисты.

Evaldas Kuslevic 12.05.2019 08:53
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
47
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

вы должны определить обратную связь, чтобы мы знали, как лучше всего ответить на это, но вот что вы можете сделать, вам просто нужно отношение 1 к n между ними всеми: здесь, в вашей модели событий:

public function group(){
return $this->hasMany(Group::class);
}

и в вашей модели группы:

 public function category(){
    return $this->hasMany(Category::class);
    }

и в вашей модели категории:

public function judokas(){
        return $this->hasMany(Judokas::class);
}

и подумайте о том, чтобы поместить modelname_id в связанную таблицу, поэтому, например, в вашей модели событий вам нужен такой столбец, как:

group_id

и в вашей модели группы вам нужен столбец, например:

category_id

и в модели вашей категории вам нужен столбец, например:

jukodas_id

и теперь вы можете получить доступ ко всем отношениям с помощью вложенных отношений, поэтому, например, в вашем контроллере вы можете использовать их, как показано ниже:

 $data = Event::with('Group', 'category.judokas');

здесь вы можете получить вложенное отношение, которое является отношением категории внутри дзюдоистов. Я надеюсь, что это помогает

ваш вопрос не ясен, но на основе вашего описания у вас должны быть следующие отношения:

  1. события имеют много категорий
  2. события имеет много дзюдоистов
  3. в группе много дзюдоистов

когда вы добавляете дзюдо в категорию, вы должны синхронизировать эти отношения:

category->events()->judokas()
category->groups()->judokas()

и получить к ним доступ следующим образом:

event->judokas()
group->judokas()
Ответ принят как подходящий

Всем спасибо, нашел решение. Только что создал сводную таблицу с 3 значениями category_id, event_id и judoka_id. Прикрепленные значения, подобные этому: $categoryf->events()->attach($categoryf->id, ['event_id' => $event->id, 'judoka_id' => $judokas->id]);

Другие вопросы по теме