Я пытался выяснить, как получить все данные из записи через внешний ключ. У меня есть простое приложение, в котором пользователи могут добавлять книги в свою "книжную полку".
Вот мои таблицы:
ПОЛЬЗОВАТЕЛИ
ID | NAME |
КНИГИ
ID | PAGES | NUMBER_OF_CHAPTERS
BOOKSHELF
ID | USER_ID (foreign key to `users.id`) |
BOOKSHELF_BOOKS
ID | BOOKSHELF_ID (foreign key to `bookshelf.id`) | BOOKS_ID (foreign key to `books.id`)
В моих Eloquent Models a bookshelf
hasMany books и bookshelf_books
принадлежит To bookshelf
, и я установил их в своих моделях.
Что происходит, пользователи создают "книжную полку" и добавляют к ней книги из списка книг.
Я нахожусь в точке, где мне нужно сделать книжную полку с помощью пользовательских книг.
Когда я беру книги книжной полки с вызовом типа Bookshelf:: find ($ id) → books, книги, которые принадлежат к этой книжной полке, возвращаются только в порядке... но только столбцы из таблицы книжной полки. Поэтому я возвращаю идентификатор книжной полки, идентификатор пользователя и идентификатор книги.
То, что я хочу вернуть, - это все данные самой книги, когда я запрашиваю книги на книжной полке, а не только ее идентификатор. НАПРИМЕР. [{"book_id":1, "pages":364, "number_of_chapters":14},{"book_id":2, "pages":211, "number_of_chapters":9}]
.
Я весь день царапал себе голову, пытаясь понять, как это "присоединиться" на один шаг дальше в Laravel/Eloquent ORM.
Хотелось бы помочь с этим, спасибо!