Запрос в бд вместо со связями | Laravel
Как в Laravel сделать запрос на получение записи вместе со связью? Допустим, есть таблица:
ChapterTable
________________________________
id | title | volume | created_at
1 | прив | 1 | 0000:00...
2 | п112 | 1 | 0000:00...
3 | 3234 | 2 | 0000:00...
VolumeTable
________________________________
id | title | created_at
1 | том 1 | 0000:00...
2 | том 2 | 0000:00...
3 | том 3 | 0000:00...
Как мне получить из таблицы chapterTable строку с id = 1, и volume "том 1", вместо "1"??
SQL RESULT
________________________________
id | title | volume | created_at
1 | прив | Том 1 | 0000:00...
Связи между chapterTable.volume и volumeTable.id уже прописаны.
Keyname Type Unique Packed Column Cardinality Collation Null
____________________________________________________________________________________
chapters_volume_foreign |BTREEЭ |No |No |volume |2 |A |No
Ответы (1 шт):
Автор решения: Sire IMPACTUS
→ Ссылка
Решил проблему. Надо было в модель Chapter добавить фукнцию:
public function volume_info(){
return $this->hasOne(Volume::class, 'id' <-- связанное поле у VolumeTable, 'volume' <-- связанное поле у текущей таблицы);
}
Ранее эта же функция называлась volume(), из-за чего при вызове:
$chapters = Chapter::where('book', $book)->orderByDesc('created_at')->limit(25)->get();
foreach ($chapters as $chapter) {
dd($chapter->volume);
}
Я получал id volume, вместо объекта.