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的情况下获取书籍的所有idAuth::user()->books()->list('id')
将返回一个图书id数组非常感谢你们两位。