我一直在试图找出通过外键从记录中获取所有数据的正确方法。我有一个简单的应用程序,用户可以在其中将书籍添加到他们的“书架”中。
这是我的表:
用户
ID | NAME |
图书
ID | PAGES | NUMBER_OF_CHAPTERS
书架
ID | USER_ID (foreign key to `users.id`) |
书架_书
ID | BOOKSHELF_ID (foreign key to `bookshelf.id`) | BOOKS_ID (foreign key to `books.id`)
在我的 Eloquent 模型中,a bookshelf
hasMany books 和bookshelf_books
belongsTo abookshelf
我已经在我的模型中设置了这些。
发生的情况是用户创建一个“书架”并从书籍列表中添加书籍。
我正处于需要用用户的书籍渲染书架的地步。
当我通过像 Bookshelf::find($id)->books 这样的调用检索我的书架书籍时,属于该书架的书籍返回得很好......但只有书架表中的列。因此,我得到了书架 ID、用户 ID 和书籍 ID。
当我在书架上查询书籍时,我想要返回的是书籍本身的所有数据,而不仅仅是它的id。EG [{"book_id":1, "pages":364, "number_of_chapters":14},{"book_id":2, "pages":211, "number_of_chapters":9}]
。
我整天都在摸不着头脑,试图弄清楚如何在 Laravel/Eloquent ORM 中更进一步地“加入”。
希望有任何帮助,谢谢!