@l03d

Как организовать отношения с такой таблицей Laravel?

Есть три модели:
  1. Мероприятие
  2. Тема
  3. Спикер


Нужно организовать такую логику: мероприятие может содержать несколько тем, каждая тема содержит несколько спикеров. Всё это необходимо уместить в таблице базы данных в таком виде:
event_id | topic_id | speaker_id
    1    |    1     |    1    
    1    |    1     |    2
    1    |    2     |    5
    2    |    1     |    3


Подскажите, пожалуйста, как лучше это организовать, не изменяя структуры таблицы?
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 1
@walkerstech
В таблицу topic добавить строку event_id
В таблицу speaker добавить строку topic_id
В модель event
public function topic()
    {
        return $this->hasMany(Topic::class, 'event_id', 'event_id');
    }

В модель topic
public function event(): BelongsTo
    {
        return $this->belongsTo(Event::class, 'event_id', 'event_id');
    }
    public function speaker()
    {
        return $this->hasMany(Speaker::class, 'topic_id', 'topic_id');
    }

Speaker модель
public function topic(): BelongsTo
    {
        return $this->belongsTo(Topic::class, 'topic_id', 'topic_id');
    }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы