Php 如何在这些实体之间建立Laravel关系?

Php 如何在这些实体之间建立Laravel关系?,php,laravel,orm,Php,Laravel,Orm,我的数据库中有三个表:用户,书籍,和阅读。读取的结构是: id,用户id,图书id 现在,我需要访问用户正在阅读的所有书籍 首先,我想知道哪种关系是一对多、多对多、多对多、多对多、多对多、多对多、多对多、多对多、多对多、多对多、多对多、多对多、多对多对多、多对多对多、多对多对多、多对多对多对多、多对多对多对多?我的意思是,在用户模型中,有很多('Reading')或其他什么 我想通过这样的方式访问:Auth::user()->reading()->books()->get()或类似的东西。一个用

我的数据库中有三个表:
用户
书籍
,和
阅读
读取的结构是:

id,用户id,图书id

现在,我需要访问用户正在阅读的所有书籍

首先,我想知道哪种关系是一对多、多对多、多对多、多对多、多对多、多对多、多对多、多对多、多对多、多对多、多对多、多对多、多对多对多、多对多对多、多对多对多、多对多对多对多、多对多对多对多?我的意思是,在用户模型中,
有很多('Reading')
或其他什么


我想通过这样的方式访问:
Auth::user()->reading()->books()->get()
或类似的东西。

一个
用户可以阅读多本书,而一本
书可以被多个用户阅读的关系是
多对多
关系

因此,要在Laravel中定义这种关系,您应该使用
belongTomany
方法:

class User extends Eloquent
{
    function books()
    {
         return $this->belongsToMany("Book", "Reading", "user_id", "book_id");
    }
}

class Book extends Eloquent
{
    function users()
    {
         return $this->belongsToMany("User", "Reading", "book_id", "user_id");
    }
}

$books = Auth::user()->books;

注意,您不需要调用方法
->books()
,而是使用属性
->books
,否则您必须像
Auth::user()->books()->get()

那样调用它,并且如何使用Auth::user()->books->id这样的东西,在不使用foreach的情况下获取书籍的所有id
Auth::user()->books()->list('id')
将返回一个图书id数组非常感谢你们两位。