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






вы должны определить обратную связь, чтобы мы знали, как лучше всего ответить на это, но вот что вы можете сделать, вам просто нужно отношение 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');
здесь вы можете получить вложенное отношение, которое является отношением категории внутри дзюдоистов. Я надеюсь, что это помогает
ваш вопрос не ясен, но на основе вашего описания у вас должны быть следующие отношения:
когда вы добавляете дзюдо в категорию, вы должны синхронизировать эти отношения:
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]);
У меня возникли небольшие проблемы с определением запроса здесь, можете ли вы опубликовать код для отношений и фактический запрос, который вы пытаетесь выполнить?