Объединение таблиц базы данных с использованием внешнего ключа laravel - PullRequest
1 голос
/ 23 февраля 2020

У меня есть две таблицы, которые мне нужно объединить, чтобы получить доступ к дополнительным данным. Моя первая таблица think_journal_entries содержит много значений идентификатора из эмоций второй таблицы. Первичный ключ в эмоциях - это id, а внешний ключ в think_journal_entries - em_id.

Это в модели Emotions

public function thoughtJournalEntry() {
    return $this->belongsTo(ThoughtJournalEntry::class, 'id');
}

Это в модели ThoughtJournalEntry

public function emotions() {
    return $this->hasMany(Emotions::class, 'id');
}

Это как далеко я продвинулся, не уверен, правильно ли это, и как я могу присоединить их к контроллеру?

1 Ответ

1 голос
/ 23 февраля 2020

Если вы установите em_id в таблице thought_journal_entries, это означает, что мысльJournalEntry принадлежит Emotions, а Emotions hasMany мыслиJournalEntry, поэтому в этом случае отношения должны быть объявлены следующим образом

// Emotions class
public function thoughtJournalEntries() {
    return $this->hasMany(ThoughtJournalEntry::class, 'em_id');
}

// ThoughtJournalEntry class
public function emotion() {
    return $this->belongsTo(Emotions::class, 'em_id');
}

// access from controller
$emotion->thoughtJournalEntries;
$thoughtJournalEntry->emotion;

Если этот тип отношений не то, что вы хотели, то, вероятно, вы должны изменить свои таблицы базы данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...